Android读书笔记------View动画(2)
2015-10-27 00:16
465 查看
(内容来源于Android开发艺术探索)
一 理解插值器和估值器
1.插值器TimeInterpolator:根据时间流失的百分比计算出当前属性值改变的百分比。
2.估值器 TypeEvaluator:根据当前属性值改变的百分比,计算出改变后的属性值
它们是实现非匀速动画的重要手段。自定义1需要实现Interpolator或者TimeInterpolator。自定义2需要实现TypeEvaluator。
二丶对任意View的属性做动画。
对任意控件的某一属性做动画是有条件的。
1.首先该控件的该属性 需要有get set方法。因为属性动画会根据外界传入的值,不断的调用它的set方法,重新设置新的值,使其逐渐靠近目标值。
2.通过该属性设对UI进行改变能有直观的效果。例如,改变宽高,位置。
注意:以上两个条件缺一不可。
当该属性没有get,set方法时,可以采用两种方式:
1.用一个类包装该View
2.采用属性动画监听
未完待续
一 理解插值器和估值器
1.插值器TimeInterpolator:根据时间流失的百分比计算出当前属性值改变的百分比。
2.估值器 TypeEvaluator:根据当前属性值改变的百分比,计算出改变后的属性值
它们是实现非匀速动画的重要手段。自定义1需要实现Interpolator或者TimeInterpolator。自定义2需要实现TypeEvaluator。
二丶对任意View的属性做动画。
对任意控件的某一属性做动画是有条件的。
1.首先该控件的该属性 需要有get set方法。因为属性动画会根据外界传入的值,不断的调用它的set方法,重新设置新的值,使其逐渐靠近目标值。
2.通过该属性设对UI进行改变能有直观的效果。例如,改变宽高,位置。
注意:以上两个条件缺一不可。
当该属性没有get,set方法时,可以采用两种方式:
1.用一个类包装该View
private class ViewWrapper{ private View mTarget; public ViewWrapper(View mTarget){ this.mTarget=mTarget; } //有价值的任意属性 public int getWidth(){ return mTarget.getLayoutParams().width; } public void setWidth(int width){ mTarget.getLayoutParams().width=width; mTarget.requestLayout(); } } ViewWrapper target=new ViewWrapper(mButton); ObjectAnimation.ofInt(target,"width",500)...
2.采用属性动画监听
private void domyAnimation(final View target,final int startInt,final int endInt){ ValueAnimator valueAnimator=ValueAnimator.ofInt(1, 100); valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { //根据估值器计算出 改变后属性 private IntEvaluator intEvaluator=new IntEvaluator(); @Override public void onAnimationUpdate(ValueAnimator animation) { //获得当前的进度值 int currentValue= (Integer) animation.getAnimatedValue(); //得到当前进度在整个动画中的比例 float fraction=animation.getAnimatedFraction(); //根据该比例改变view的某个属性 target.getLayoutParams().width=intEvaluator.evaluate(fraction,startInt,endInt); target.requestLayout(); } }); valueAnimator.setDuration(500).start(); } mButton.onClickListener(..){ domyAnimation(targetView,100,200); }
未完待续
相关文章推荐
- 只需十分钟,结果大不同 |《深度思考》
- 《洋葱阅读法》读书笔记
- Jquery实战_读书笔记1―选择jQuery
- JavaScript 精粹读书笔记(1,2)
- JavaScript 权威指南(第四版) 读书笔记
- Terry七月Ruby读书笔记(比较详细)第1/4页
- 从「林」开始--C++ primer 读书笔记 -- Part II: Containers ...
- [读书笔记]Scrum 总结
- 《穷爸爸,富爸爸》读书笔记
- 《程序员的职业素养》读书笔记
- sniff读书笔记
- 《Zabbix监控系统深度实践》读书笔记
- 《DevOps故障排除:Linux服务器运维最佳实践》读书笔记
- 重学JS 1
- 《javascript高级程序设计》读书笔记——引用类型之Object类型(细节整理)
- 《HTML重构》读书笔记&思维导图
- 数据挖掘入门笔记(一)--认识数据
- 读书笔记 Visual C++ 编程之道
- 《算法竞赛入门经典》读书笔记(第一章)
- C# 读书笔记