本文主要是介绍很漂亮的字体闪烁效果,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
很漂亮的字体闪烁效果,我们可以用在一个项目的spalsh界面,进入应用后弹出这个界面,闪烁完毕后跳入主界面,比纯粹的设置背景图片的splash好看炫酷很多。
通过自定义view重写onDraw的方法和onSizeChanged方法实现效果。在把自定义view进行应用到布局文件就可以了。
现在就让我来给大家代码把。代码不多,我就把自定义view贴出来,至于用到布局上总不用我说了把。
import cn.bmob.ziti.R.color;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Shader;
import android.util.AttributeSet;
import android.widget.TextView;public class MyTextView extends TextView {private LinearGradient mLinearGradient;private Matrix mGradientMatrix;private Paint mPaint;private int mViewWidth = 0;private int mTranslate = 0;private boolean mAnimating = true;public MyTextView(Context context, AttributeSet attrs) {super(context, attrs);}@Overrideprotected void onSizeChanged(int w, int h, int oldw, int oldh) {super.onSizeChanged(w, h, oldw, oldh);if (mViewWidth == 0) {mViewWidth = getMeasuredWidth();if (mViewWidth > 0) {mPaint = getPaint();mLinearGradient = new LinearGradient(-mViewWidth, 0, 0, 0,new int[] { 0x33ffffff, 0xffffffff, 0x33ffffff },new float[] { 0, 0.5f, 1 }, Shader.TileMode.CLAMP);mPaint.setShader(mLinearGradient);mGradientMatrix = new Matrix();}}}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);if (mAnimating && mGradientMatrix != null) {mTranslate += mViewWidth / 10;if (mTranslate > 2 * mViewWidth) {mTranslate = -mViewWidth;}mGradientMatrix.setTranslate(mTranslate, 0);mLinearGradient.setLocalMatrix(mGradientMatrix);postInvalidateDelayed(50);}}}
好了。如果你想偷懒,好吧,给你源码。不用谢我,我是雷锋。
源码下载:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=585993&page=1&extra=#pid5795966
更多代码: http://www.bmob.cn/spread/redirect/?sid= 11696199f24e8b68457f 这篇关于很漂亮的字体闪烁效果的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!