博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android之Animator
阅读量:6313 次
发布时间:2019-06-22

本文共 807 字,大约阅读时间需要 2 分钟。

hot3.png

Android在3.0引入了一个新的package(android.animation),顾名思义是关于动画的。它与之前版本中的动画有很大区别的(android.view.animation),具体区别官方教程都有描述(可能需要翻墙 )。

今天看到了一篇blog()是讲View动画的性能优化的。这里指的View动画是指用ObjectAnimator来实现的View动画,也就是Property Animation。

作者的分析深入简出,提出了影响动画性能的三个因素:

1、property的setter/getter是通过reflection或者jni来是实现的,如果知道Object的setter/getter方法可以直接调用,节省性能;

2、多个animator并行执行。通过定义多个ObjectAnimator,然后通过AnimatorSet的playTogether接口来调用。这个可以通过ViewPropertyHolder将需要多个animator优化为只需要一个animator来实现。同样节省了性能;

3、在ObjectAnimator中,View的每个属性被修改后会调用invalidate()让container进行重绘。这样如果一个ObjectAnimator动画同时修改x,y的话,会invalidate两次。新的系统中View增加了一个animate方法,返回一个ViewPropertyAnimator,它通过ObjectAnimator对View进行了封装,针对以上两个性能优化点进行了优化。它直接调用View的setX、setAlpha等方法设置property;另外,它会在一次valueupdate回调中同时设置x,y的值然后再调用invalidate,这样就减少了重绘的频率。

转载于:https://my.oschina.net/kingguary/blog/141874

你可能感兴趣的文章
Linux信号 编程
查看>>
有关滚动与位置
查看>>
Box2D自定义重力
查看>>
chpasswd
查看>>
mysqldump --single-transaction 和--lock-tables参数详解
查看>>
android 数据库_sql语句总结
查看>>
python购物车
查看>>
解决python2和python3的pip冲突
查看>>
面试/编程
查看>>
linux每日命令(16):head命令
查看>>
公司内部分享【富有成效的每日站会】总结
查看>>
打造一个上传图片到图床利器的插件(Mac版 开源)
查看>>
iOS横竖屏
查看>>
thinkphp判断更新是否成功
查看>>
Do While ... Loop 与 Do Until ... Loop 的区别
查看>>
【Linux】查询某个字符串出现次数
查看>>
高效使用jquery之一:请使用'On'函数
查看>>
冲刺第一周第三天
查看>>
ERP环境检测工具设计与实现 Environment Detection
查看>>
不要在构造中做太多事情,不然有时候会出现有意思的代码~
查看>>