`
nanapoleon
  • 浏览: 46800 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

继续说说动画

阅读更多
奥运男篮太精彩了,呵呵,这周更新点比较水的吧,最近工作真的好忙,没有办法写些经典的了。
在开发中,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~
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics