`
zhy20045923
  • 浏览: 156960 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

android3.0及以上动画分析

 
阅读更多
ValueAnimator简介
ValueAnimator属于property animation



Propertity  Animation类似于 tween动画,区别在于ValueAnimator修改的是真实属性。
在Android 3.0中给View增加了一些参数并对这些参数增加了相应的getter/setter函数(ObjectAnimator要用这些函数改变这些属性):
• translationX,translationY:转换坐标(control where the View is located as a delta from its left and top coordinates which are set by its layout container.)
• rotation,rotationX,rotationY:旋转,rotation用于2D旋转角度,3D中用到后两个
• scaleX,scaleY:缩放
• x,y:View的最终坐标(utility properties to describe the final location of the View in its container, as a sum of the left and top values and translationX and translationY values.)
• alpha:透明度
ValueAnimator绘制刷新




2D动画执行速度快,是因为它只是重绘需要刷新的部分,不会从根到叶全部刷新重绘。
传统的动画和属性动画流程区别如下图:




具体的通过下面例子来做说明:
1.layout中包含2个视图,给其中一个做scaleX动画。
如果用传统的Animation,Log显示如下:
02-24 02:13:47.892: E/XXX(954): MyImageView:onDraw
02-24 02:13:47.892: E/XXX(954): MyImageView:dispatchDraw
02-24 02:13:47.902: E/XXX(954): MyViewGroup:dispatchDraw
02-24 02:13:47.922: E/XXX(954): MyTextView:onDraw
02-24 02:13:47.922: E/XXX(954): MyTextView:dispatchDraw
循环直至结束
如果用ValueAnimator,Log显示如下:
02-24 02:14:53.522: E/XXX(1000): MyImageView:onDraw
02-24 02:14:53.522: E/XXX(1000): MyImageView:dispatchDraw
02-24 02:14:53.532: E/XXX(1000): MyViewGroup:dispatchDraw
循环直至结束
2.layout中包含2个视图,给其中一个做translate动画,让其覆盖在另一个视图之上。
如果用传统的Animation,Log显示如下:
02-24 02:11:26.442: E/XXX(909): MyImageView:onDraw
02-24 02:11:26.442: E/XXX(909): MyImageView:dispatchDraw
02-24 02:11:26.442: E/XXX(909): MyViewGroup:dispatchDraw
02-24 02:11:26.461: E/XXX(909): MyTextView:onDraw
02-24 02:11:26.461: E/XXX(909): MyTextView:dispatchDraw
如果用ValueAnimator,Log显示如下:
02-24 02:08:51.262: E/XXX(862): MyImageView:onDraw
02-24 02:08:51.262: E/XXX(862): MyImageView:dispatchDraw
02-24 02:08:51.272: E/XXX(862): MyViewGroup:dispatchDraw
02-24 02:08:51.302: E/XXX(862): MyImageView:onDraw
02-24 02:08:51.302: E/XXX(862): MyImageView:dispatchDraw
02-24 02:08:51.312: E/XXX(862): MyViewGroup:dispatchDraw
02-24 02:08:51.332: E/XXX(862): MyTextView:onDraw
02-24 02:08:51.332: E/XXX(862): MyTextView:dispatchDraw
Log结果分析:
如果使用普通的tween动画,不管做动画的view是否影响到其它的view,都会重新绘制所有的view。
如果使用属性动画,在动画view不影响其它view的情况下,只重新绘制动画view,如果动画view影响到了其它的view,那么会重新绘制动画view和受影响的view。

具体测试代码见附件:
  • 大小: 22.7 KB
  • 大小: 15.7 KB
  • 大小: 17.5 KB
分享到:
评论

相关推荐

    android NineOldAndroids3.0+动画源码.rar

    标题"android NineOldAndroids3.0+动画源码.rar"指的是这个压缩包包含NineOldAndroids库的源代码,适用于Android 3.0及以上版本的动画功能。开发者可以下载这些源代码,深入理解其内部工作原理,或者根据需求进行...

    Android 3.0 Animations Beginner’s Guide

    #### 二、Android 3.0动画概述 Android 3.0(代号Honeycomb)于2011年发布,带来了许多新特性,其中就包括了改进后的动画支持。这一版本的动画框架相比之前的版本有了显著增强,提供了更强大的工具和API来创建复杂的...

    android3.0以后3种动画.pdf

    Android 3.0 以后,动画系统得到了显著增强,新增了Property Animation,与之前的Tween Animation(视图动画)和Drawable Animation(帧动画)一起构成了Android动画的三大支柱。下面我们将详细探讨这三种动画模式。...

    Android 3.0 sdk API11

    Android 3.0开启了系统级别的硬件加速,提升了图形渲染性能,使得动画更加流畅,为游戏和图形密集型应用提供了更好的平台。 7. **USB Host支持** API 11增加了对USB Host的支持,允许平板设备作为USB主机,连接并...

    android 3.0 ApiDemos

    6. **动画和过渡效果**:Android 3.0引入了新的动画框架,使得开发者可以创建更丰富的用户体验。在`ApiDemos`中,你可以找到关于属性动画、帧动画和视图转换的实例代码。 7. **Content Providers**:这部分展示了...

    Android属性动画3.0以下支持包

    然而,属性动画是在Android 3.0(API级别11)及以上版本才被引入的。对于运行在API级别10及以下的设备,如果不进行特殊处理,将无法直接使用属性动画功能。为了解决这个问题,开发者社区创建了一些支持库,以确保在...

    android3.0以后3种动画参考.pdf

    在Android 3.0及其后续版本中,开发者可以利用三种不同的动画机制来实现丰富的视觉效果。这三种动画分别是:补间动画(Tween Animation)、帧动画(Frame Animation)以及属性动画(Property Animation)。每种动画...

    属性动画Android3.0以下兼容包

    nineoldandroids.jar 兼容Android3.0以下的版本

    安卓Android源码——NineOlds3.0+动画.zip

    《安卓Android源码——NineOlds3.0+动画》是一个关于Android开发的资源包,主要涉及了在Android 3.0及以上版本中使用NineOldAndroids库进行动画处理的技术。NineOldAndroids是一个非常著名的开源项目,由Jake ...

    Android 3.0 Application Development Cookbook

    ### Android 3.0 Application Development Cookbook #### 一、书籍概览 《Android 3.0 Application Development Cookbook》是一本全面覆盖Android 3.0应用开发的指南书,旨在为开发者提供一系列实用的开发技巧与...

    Android NineOldAndroids3.0+动画-IT计算机-毕业设计.zip

    这个库由Jake Wharton开发,它使得开发者可以在Android 2.1(API级别7)及以上的系统上使用Android 3.0(API级别11)引入的动画API。这对于那些需要兼容低版本Android设备的应用来说,是个非常实用的工具。 在...

    ViewPager源码和兼容3.0一下属性动画Jar包

    在Android 3.0(API级别11)及以上版本,ViewPager已经内置了丰富的动画效果,但在更低版本的Android系统中,由于属性动画库未引入,这些效果就无法直接使用。这个压缩包提供了ViewPager的源码分析和针对Android 3.0...

    [android.开发书籍].Android.3.0.Animations

    2. **动画框架详解**:深入探讨了Android 3.0中提供的各种动画框架,如View动画系统、属性动画系统等,并讲解了如何利用这些框架来创建复杂的动画效果。 3. **案例分析**:通过一系列实际案例,展示了如何将动画应用...

    在Android 3.0上使用Fragment

    Fragment是Android应用开发中的一个重要组件,自Android 3.0(API级别11)引入,为构建复杂的、可重用的UI提供了强大的支持。在大屏幕设备如平板电脑上,Fragment的重要性尤为突出,因为它允许开发者将一个大屏幕...

    NineOldAndroids3.0+动画.zip

    NineOldAndroids是一个开源项目,由Jake Wharton开发,旨在为Android 3.0(API级别11)及以下版本提供对Android 3.0及以上版本引入的新动画特性的支持。这个库的出现,使得开发者能够在更早版本的Android设备上实现...

    Packt.Android.3.0.Animations.Beginner's.Guide

    在《Android 3.0 Animations Beginner's Guide》一书中,作者Alex Shaw深入探讨了如何利用Android 3.0提供的强大功能来实现各种动画效果。 #### Android 3.0的新特性及其对动画的支持 Android 3.0(代号Honeycomb...

    android金币掉落动画

    属性动画是Android 3.0(API级别11)及更高版本引入的新功能,它允许开发者对对象的任何属性进行动画处理,而不仅仅是视图的平移、旋转和缩放。视图动画则是在早期版本中使用的,主要包括帧动画(Frame Animation)...

    Android数百种动画效果源码

    - Android 3.0(API Level 11)引入了属性动画系统,它允许开发者对对象的任何属性进行动画化,而不仅仅是View的平移、旋转等。 - 属性动画包括`ObjectAnimator`、`ValueAnimator`和`AnimatorSet`三个核心类。`...

    Android 动画机制 补间、属性、帧动画、源码分析

    * Property Animation :属性动画只对Android 3.0(API 11)以上版本的Android系统才有效,这种动画可以设置给任何Object,包括那些还没有渲染到屏幕上的对象。这种动画是可扩展的,可以让你自定义任何类型和属性的...

Global site tag (gtag.js) - Google Analytics