我正在进行一些适当利用Android资源目录的研究,以下内容并不清楚:
android animator资源目录和android anim资源目录有什么区别?
http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources
此外,我想我问的问题是属性动画和补间动画之间的区别是什么?
答案 0 :(得分:19)
老实说,我认为Google在解释Property Animations API guide的差异方面做得非常好(见下文)。
TL; DR的主要区别是:
补间动画非常简洁,只允许操作视图的位置(平移),大小(比例),角度(旋转)和半透明度(alpha)。属性动画框架更通用和灵活:它通过允许实时更新动画的任何属性(例如,#34; foobar")来概括前一种情况。 target-object - 前提是它有一个setFoobar()方法。 setScaleX(),setAlpha()等只是视图的一个特例。
因此,实现补间动画通常更容易,代码也更轻巧。
属性动画可用于任何类型的目标对象,而不仅仅是视图:唯一重要的是定义setFoobar()方法,如前所述(基于反射的方法查找)。
补间动画只是对视图进行调整'配置,而属性动画有效地修改对象。前一种方法的一个常见缺陷是,当使用动画来移动视图时,相关的可点击区域在整个动画中不会更新,并且与视图在屏幕上的有效位置不同步
引用指南:
属性动画与视图动画的不同之处
视图动画系统提供仅为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顺序)。