继续说说动画

奥运男篮太精彩了,呵呵,这周更新点比较水的吧,最近工作真的好忙,没有办法写些经典的了。
在开发中,2.3以前的动画架构,已经非常慢了。因为,一个没有硬件加速,一个是做动画每次都要重绘所有的绘画动作。在3.0以后增加了一个新的动画接口,使得很多动画可以更高效的完成。
看看下面的例子:
ValueAnimator bounceAnim = ObjectAnimator.ofFloat(view, "width",
startW, endW);
colorAnim.setDuration(3000L);
colorAnim.setRepeatCount(ValueAnimator.INFINITE);
colorAnim.setRepeatMode(ValueAnimator.REVERSE);
colorAnim.start();

第一句,先构建ValueAnimator对象,看看后面的构造方法,影响参数width,对应的view(view都会有setWidth方法,当然可以使用别的对象,只要有setWidth方法都适用)。下面的都和2d一样了,start起来即可实现一个变换宽度的动画了。
这个方法,可以使用硬件加速,我觉得因为是此方法不会改变view的绘画形态,直接使用绘画缓冲就行(专业名词好像叫缓冲列表),这些方法正好适用于开启硬件加速。
除了方便加速,这个架构,还可以把我们从android以前定义的动画解放出来(如只能作平移,变大变小等)。这里正好和我前面的一个动画章节中说的也基本一样(和google想一起了,自豪一个 >.<),android解决的何时画的问题,怎么画就交给了我们,我们在这个架构下,按他给我们的预留接口,每帧想做什么都是可以的,比如我自己写个set方法setB,我们把例子里的width换成B就好了。
还有种方法,这里就算使用animationListener也会很方便的实现动画。因为在每次更新都会掉到update回调方法,这样,我们就可以把动画的代码放到这里来(还是android接管何时画,我们来管画什么),这个架构,在灵活性方面的提高,终于可以让我们做出和苹果相差不多的动画了!代码写着写着发现心情好?那就来个animator吧~怕上火,就用animator~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值