android 属性动画 vs 延时实现动画
2016-03-07 22:32
92 查看
属性动画
我们用属性动画实现动画常用的代码:ObjectAnimator.ofFloat(targetView,"translateX",0,100) .setDuration(1000).start();
属性动画一般只能实现一些比较简单的动画,使用View的scrollTo却能实现复杂动画,下面结合属性动画和scrollTo实现动画:
final int startX = 0; final int deltaX = 100; ValueAnimator animator = ValueAnimator.ofInt(0,1) .setDuration(100); animator.addUpdateListener(new AnimatorUpdateListener(){ public void updateAnimation(ValueAnimator animator) { float fraction = animator.getAnimatorFraction(); tartView.scrollTo((startX + (int)(fraction*deltaX)),0); } });
通过获取fraction从0到1的渐变过程,从而实现scrollTo的弹性滑动,以便通过属性动画实现一些复杂动画。
延时实现动画
延时实现动画有三种方式:1. handler;
2. view本身的postDelay;
3. 子线程sleep.
现在只介绍第一种~
代码如下:
private int count = 0; private static final int FRACTION = 100; private static final int DELAY_TIME = 50; private static final int ANIMATION_ING = 1; Handler mHandler = new Handler(){ public void handleMessage(Message msg){ switch(msg.what){ case ANIMATION_ING: count++; if(count <= FRACTION){ float fraction = count/(float)FRACTION; int scrollX = (int)fraction*100; tartView.scrollTo(scrollX,0); mHanlder.sendEmptyMessageDelayed(ANIMATION_ING,DELAY_TIME); } break; } } };
上面两种实现动画的方式,最终目的都是为了更好的理解View本身的方法scrollTo和scrollBy,写了几篇文章后,我自己确实要明白了不少~
相关文章推荐
- 一个将Android手机屏幕投影到电脑屏幕上的软件
- android 开源项目地址汇总
- Android开发之使用本地广播
- Android多点触控技术实战,自由地对图片进行缩放和移动
- Android瀑布流照片墙实现,体验不规则排列的美感
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
- Android中ArrayAdapt&SimpleAdapt的使用
- Android 之 日期选择器
- Android 热修复Nuwa的原理及Gradle插件源码解析
- #Android学习#NavigationView基础
- Android开发涉及到的英文
- android完全退出程序
- Android学习笔记18:自定义Seekbar拖动条式样
- Android照片墙应用实现,再多的图片也不怕崩溃
- Android JNI编程规范
- android中JNI调用时内存分布以及内存泄露原因分析
- android之bitmap-xml文件属性详解
- Fresco介绍 - 超级牛逼的android图片加载库
- 【入门篇】Android学习笔记——项目结构及相关基础知识
- 在Activity里显示列表(ListView的布局)