自定义TextView 实现文字渐变效果
2016-03-15 22:31
555 查看
上代码
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); } @Override protected 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(); } } } @Override protected 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); } } }
相关文章推荐
- jQuery实现的文字hover颜色渐变效果实例
- ofstream的使用方法--C++文件写入、读出函数(转)
- Session与Cookie(完成)
- Android的事件分发机制(二)
- 微信这些好用的功能你都用过吗?
- Linux E667 同步失败
- 所有CN_消息的说明
- 关于使用webview的一些坑和经验总结
- Spark Shuffle过程理解
- 103. Binary Tree Zigzag Level Order Traversal LeetCode
- 第一个final程序
- Java基础之自动装箱拆箱
- 动态图文讲解8大排序算法
- C语言编程之计算二进制数中1的个数
- [疯狂Java]AWT拖放操作:拖放源
- 第三方插件使用以及qq,新浪微博登录
- Xcode7编译打包后,iOS9设备无法打开http网址的问题
- App版本号定义与说明基础知识
- 对Trie单词树的实现与思考
- 动态规划(DP),最大矩阵和