Android动画师与动画资源目录

时间:2014-07-09 18:06:43

标签: android android-resources

我正在进行一些适当利用Android资源目录的研究,以下内容并不清楚:

android animator资源目录和android anim资源目录有什么区别?

http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources

此外,我想我问的问题是属性动画和补间动画之间的区别是什么?

3 个答案:

答案 0 :(得分:19)

老实说,我认为Google在解释Property Animations API guide的差异方面做得非常好(见下文)。

TL; DR的主要区别是:

  1. 补间动画非常简洁,只允许操作视图的位置(平移),大小(比例),角度(旋转)和半透明度(alpha)。属性动画框架更通用和灵活:它通过允许实时更新动画的任何属性(例如,#34; foobar")来概括前一种情况。 target-object - 前提是它有一个setFoobar()方法。 setScaleX(),setAlpha()等只是视图的一个特例。

  2. 因此,实现补间动画通常更容易,代码也更轻巧。

  3. 属性动画可用于任何类型的目标对象,而不仅仅是视图:唯一重要的是定义setFoobar()方法,如前所述(基于反射的方法查找)。

  4. 补间动画只是对视图进行调整'配置,而属性动画有效地修改对象。前一种方法的一个常见缺陷是,当使用动画来移动视图时,相关的可点击区域在整个动画中不会更新,并且与视图在屏幕上的有效位置不同步

  5. 引用指南:

      

    属性动画与视图动画的不同之处

         

    视图动画系统提供仅为View对象设置动画的功能,因此如果要为非View对象设置动画,则必须实现自己的代码才能实现。视图动画系统也受到限制,因为它仅将View对象的一些方面暴露给动画,例如视图的缩放和旋转,而不是背景颜色。

         

    视图动画系统的另一个缺点是它只修改了绘制视图的位置,而不是实际的视图本身。例如,如果您设置了一个按钮以在屏幕上移动,则该按钮会正确绘制,但您可以单击该按钮的实际位置不会更改,因此您必须实现自己的逻辑来处理此问题。

         

    使用属性动画系统,可以完全删除这些约束,并且可以为任何对象(视图和非视图)的任何属性设置动画,并且实际修改了对象本身。属性动画系统在执行动画方面也更加强大。在较高级别,您可以将动画师分配给要设置动画的属性,例如颜色,位置或大小,并可以定义动画的各个方面,例如多个动画师的插值和同步。

         

    然而,视图动画系统设置时间较短,编写代码较少。如果视图动画完成了您需要执行的所有操作,或者现有代码已按您所需的方式工作,则无需使用属性动画系统。如果出现用例,将两种动画系统用于不同的情况也是有意义的。

答案 1 :(得分:15)

基本上补间动画是标准动画,

例如:缩放,旋转,平移等(这些可以应用于任何类型的视图)

名称建议的属性动画用于更改任何视图的属性。

例如:更改ImageView的Alpha,在棒棒糖中更改fab按钮的translationZ值等

希望澄清。

Check Android View Tween Animation

  

补间动画可以对View对象的内容执行一系列简单的转换(位置,大小,旋转和透明度)。因此,如果您有TextView对象,则可以移动,旋转,增大或缩小文本。如果它有背景图像,背景图像将与文本一起转换。动画包提供了补间动画中使用的所有类。

check this url for Property Animation

  

属性动画系统是一个强大的框架,允许您动画几乎任何东西。您可以定义动画以随时间更改任何对象属性,无论它是否绘制到屏幕上。属性动画在指定的时间长度内更改属性(对象中的字段)值。要为某些内容设置动画,请指定要设置动画的对象属性,例如对象在屏幕上的位置,要为其设置动画的时间长度以及要在其间设置动画的值。

答案 2 :(得分:7)

尝试以下简短答案:

res / anim - 任何视图Tween Animation缩放,旋转,平移)。

res / animator - 某些视图Property Animation ImageView-更改alpha,FAB-设置Z顺序)。