自定义View之大风车系列demo(二)
2015-05-02 11:46
204 查看
版本1.0和版本2.0的风车有个不尽人意的效果:当手指抬起的时候风车就会停止转动,现在版本3要做的就是让手指抬起的时候让风车继续转动一段时间,思路如下:
1)手指抬起的时候继续让风车转动5秒
2)需要监听MotionEvent.ACTION_UP事件并记录手指抬起的时间upTime
3)捕获MotionEvent.ACTION_UP事件并重绘五秒钟
根据上面的说明RotationView的代码做了如下的改变(在版本2的基础上主要修改了onTouchEvent事件:
当然这个版本的风车还是有问题:风车转动的速度是一致的,不会随着手指移动的快慢而变化,这个将在下一个版本解决,详见自定义View之大风车系列(三)
1)手指抬起的时候继续让风车转动5秒
2)需要监听MotionEvent.ACTION_UP事件并记录手指抬起的时间upTime
3)捕获MotionEvent.ACTION_UP事件并重绘五秒钟
根据上面的说明RotationView的代码做了如下的改变(在版本2的基础上主要修改了onTouchEvent事件:
/**手指抬起的时间**/ private long upTime = 0; /**手指抬起的时候风车持续转动的时间**/ private final long stopTimeDuration = 5000; @Override public boolean onTouchEvent(MotionEvent event) { int action = event.getAction(); switch (action) { case MotionEvent.ACTION_MOVE:// 随着手指的move而不断进行重绘 //该方法在UI线程自身中使用 postInvalidate(); break; case MotionEvent.ACTION_UP:// 随着手指的move而不断进行重绘 upTime = System.currentTimeMillis(); post(new Runnable() { @Override public void run() { long duration = System.currentTimeMillis()-upTime; if(duration ==stopTimeDuration ) { return; }else if(duration<stopTimeDuration) { post(this); } //在非UI线程中使用。 invalidate(); } }); break; } return true; }
当然这个版本的风车还是有问题:风车转动的速度是一致的,不会随着手指移动的快慢而变化,这个将在下一个版本解决,详见自定义View之大风车系列(三)
相关文章推荐
- 自定义View之大风车系列demo(一)
- 自定义View之大风车系列demo(三)
- 自定义View之大风车系列demo(四)
- android自定义View基础系列一(模仿365日历PC版加载动画)
- Android 仿微信联系人Demo(自定义View,Viewgroup)
- 自定义view学习系列之圆形进度条
- android开源系列:CircleImageView自定义圆形控件的使用
- Apidemo学习 android 自定义View
- android-----自定义View实现系列(一)
- wing带你玩转自定义view系列(2) 简单模仿qq未读消息去除效果
- 解读ASP.NET 5 & MVC6系列教程(16):自定义View视图文件查找逻辑
- 【自定义View系列】android的UI结构
- 自定义View系列教程02--onMeasure源码详尽分析
- Android从零开搞系列:自定义View(5)基本的自定义ViewPager指示器+开源项目分析(下)
- 解读ASP.NET 5 & MVC6系列(16):自定义View视图文件查找逻辑
- Android UI设计系列之自定义TextView属性实现带下划线的文本框(4)
- 自定义View系列教程03--onLayout源码详尽分析
- Android自定义系列(1)——自定义view 仿微信viewPage底部显示图标(整理来自慕课网)
- RecyclerView系列(8)—自定义LayoutManager(下) ,回收复用及优化
- Material Design系列,自定义Behavior支持所有View