自定义View -- 实现字符串一个一个显示的动态动画
来源:互联网 发布:日语汉字读音软件 编辑:程序博客网 时间:2024/05/01 02:54
实现文字welcome的一个一个显示,效果如上述动态图片。
主要实现思路如下:把字符串拆开,每次画字符串的一部分,再通过一个线程来沉睡400毫秒,并调用方法postInvalidate()继续绘制。
public MyTextView(Context context, AttributeSet attrs) {super(context, attrs);Log.d(TAG," MyTextView(Context context, AttributeSet attrs)");this.context = context;this.mText = context.getString(R.string.welcome);ShowTextThread showTextThread = new ShowTextThread();showTextThread.start();// TODO Auto-generated constructor stub}class ShowTextThread extends Thread{public void run(){Log.d(TAG," showTextThread -- run()");while(mTextIndex < mText.length()+1){Log.d(TAG," showTextThread -- run() mTextIndex = "+mTextIndex);mSubText = mText.substring(0, mTextIndex);try {Thread.sleep(400);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}postInvalidate();mTextIndex++;}}}
其中mText是要显示的字符串"welcome",mSubText是逐渐增多的字符串:w->we->wel->welc->welco->welcom->welcome
在新的线程中,每次休眠400毫秒后,就调用方法postInvalidate(),其实就是调用onDraw()方法进行重新绘制自定义view。这样子就产生了字符串一个一个显示的效果。
知识点:
调用方法postInvalidate()和invalidate()来通知View重绘。
这俩个方法的区别:postInvalidate()是在非UI线程中调用,invalidate()在UI线程中调用。
在这个例子中,我们启动了一个新的子线程showTextThread,所以调用方法postInvalidate(),去重绘View
0 0
- 自定义View -- 实现字符串一个一个显示的动态动画
- js实现字符串一个一个依次显示
- Android自定义控件View(实现控件的动画效果,自定义类画简略时钟,TextView中文字逐一显示,动态设置progress的圆环/扇形ProgressBar等)
- Android自定义View的动画实现方法
- 自定义View 实现简单的动态壁纸
- 一个用粒子动画显示文字的 Android 自定义 View
- 自定义View -- 实现字符串按弧线位置显示
- Android:自定义view实现动画
- 自定义view+属性动画实现
- View 动画的实现原理以及自定义实现
- 自定义ViewGroup动态显示添加view的位置
- 自定义View的显示
- Android自定义可动画展开收缩View的实现
- 自定义可动画展开收缩View的实现
- Android自定义View: 如何实现类钟摆的动画效果?
- Android实现带动画效果的自定义View
- 自定义view实现阻尼效果的加载动画
- 自定义Behavior实现底部View的平移动画
- Android开发-API指南-AIDL
- windows下tcp网络传输
- 第一篇博客
- 关于audio的总结
- 50道Java线程面试题
- 自定义View -- 实现字符串一个一个显示的动态动画
- jsonp详解
- Spring实现AOP的4种方式
- 数字签名和数字证书
- 运行时类型检查
- CISSP10个CBK(知识域)变为8个
- 正则验证手机号,邮箱,车牌
- dbVisualizer之中文乱码
- PowerDesigner(四)-业务处理模型