Android自定义View之实现一个动态的文字闪动效果
2016-08-22 21:35
956 查看
Android给我们提供了丰富的组件库来创建丰富的UI效果,同时也提供了非常方便的拓展方法。通过继承Android的系统组件,我们可以非常方便的拓展现有功能,在系统组件的基础上创建新的功能,甚至可以直接自定义一个控件,实现Android系统控件所没有的功能。适当地使用自定义View,可以丰富应用程序的体验效果。
下面通过利用LinearGradient Shader和Matrix来实现一个动态的文字闪动效果,程序运行效果如下图所示:
要想实现这个效果,可以充分利用Android中对Paint对象的Shader渲染器。通过设置一个不断变化的LinearGradient,并使用带有该属性的Paint对象来绘制要显示的文字。首先在onSizeChanged()方法中进行一些对象的初始化工作,并根据View的宽高设置一个LinearGradient渐变渲染器,代码如下所示:
Demo源代码下载地址:http://download.csdn.net/detail/lfeng1205/9609944
下面通过利用LinearGradient Shader和Matrix来实现一个动态的文字闪动效果,程序运行效果如下图所示:
要想实现这个效果,可以充分利用Android中对Paint对象的Shader渲染器。通过设置一个不断变化的LinearGradient,并使用带有该属性的Paint对象来绘制要显示的文字。首先在onSizeChanged()方法中进行一些对象的初始化工作,并根据View的宽高设置一个LinearGradient渐变渲染器,代码如下所示:
@Override protected void onSizeChanged(int width, int height, int oldWidth, int oldHeight) { super.onSizeChanged(width, height, oldWidth, oldHeight); if (mViewWidth == 0) { mViewWidth = getMeasuredWidth(); if (mViewWidth > 0) { mPaint = getPaint(); mLinearGradient = new LinearGradient(0, 0, mViewWidth, 0, new int[]{ Color.BLUE, 0xffffffff, Color.RED }, null, Shader.TileMode.CLAMP); mPaint.setShader(mLinearGradient); mGradientMatrix = new Matrix(); } } }其中最关键的是使用getPaint()方法获取当前绘制TextView的Paint对象,并给这个Paint对象设置原生的TextView没有的LinearGradient属性。最后,在onDraw()方法中,通过矩阵的方式不断平移渐变效果,从而在绘制文字时,产生动态的闪动效果,代码如下所示:
@Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); if (mGradientMatrix != null) { mTranslate += mViewWidth / 5; if (mTranslate > 2 * mViewWidth) { mTranslate = -mViewWidth; } mGradientMatrix.setTranslate(mTranslate, 0); mLinearGradient.setLocalMatrix(mGradientMatrix); postInvalidateDelayed(100); } }
Demo源代码下载地址:http://download.csdn.net/detail/lfeng1205/9609944
相关文章推荐
- 【Android UI】自定义TextView实现动态的文字闪动效果
- 【Android】自定义View-为文字添加动态闪动效果
- 继承TextView实现自定义动态文字闪动效果
- Android自定义TextView实现动态的文字效果BlingBling
- Android下 一个自定义VIEW实现简单的弹幕效果
- Android自定义view利用Xfermode实现动态文字加载动画
- android中TextView的文字实现动态效果,走马灯效果,闪烁效果
- android自定义TextView实现安卓手机开机android文字Log的动画效果
- Android自定义TextView实现文字倾斜效果
- android中TextView的文字实现动态效果,走马灯效果,闪烁效果
- Android_用SpannableString实现在同一个TextView中多风格的文字效果
- android TextView 实现自定义文字点击效果
- Android自定义View实现比赛时间闪动效果
- android中TextView的文字实现动态效果,走马灯效果,闪烁效果
- Android自定义Dialog实现文字动态加载效果
- Android自定义动态的View,实现飘雪的效果
- Android 自定义view实现动态水球效果
- Android UI 之居中绘制文本内容的正确方法——实现自定义一个TextView
- Android重写TextView实现文字跑马灯效果