cho*_*paz 35 android android-resources
我正在做一些适当利用Android资源目录的研究,以下内容对我来说并不清楚:
android animator资源目录和android anim资源目录有什么区别?
http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources
此外,我想我问的问题是属性动画和补间动画之间的区别是什么?
d4v*_*idi 19
老实说,我认为Google在解决其动态动画API指南(见下文)中的差异方面做得很好.
TL; DR的主要区别是:
补间动画非常简洁,只允许操作视图的位置(平移),大小(比例),角度(旋转)和半透明(alpha).属性动画框架更通用和灵活:它通过允许动画的目标对象的任何属性(例如"foobar")的实时更新来概括前一种情况 - 只要它具有setFoobar()方法.setScaleX(),setAlpha()等只是视图的一个特例.
因此,实现补间动画通常更容易,代码更轻量级.
属性动画可以用于任何类型的目标对象,而不仅仅是视图:唯一重要的是定义setFoobar()方法,如前所述(基于反射的方法查找).
补间动画仅对视图的配置执行调整,而属性动画有效地修改对象.前一种方法的一个常见缺陷是,当使用动画来移动视图时,相关的可点击区域不会在整个动画中得到更新,并且与视图在屏幕上的有效位置不同步.
引用指南:
属性动画如何与视图动画不同
视图动画系统提供仅为View对象设置动画的功能,因此如果要为非View对象设置动画,则必须实现自己的代码才能执行此操作.视图动画系统也受到限制,因为它仅将View对象的一些方面暴露给动画,例如视图的缩放和旋转,而不是背景颜色.
视图动画系统的另一个缺点是它只修改了绘制视图的位置,而不是实际的视图本身.例如,如果您设置了一个按钮以在屏幕上移动,则该按钮会正确绘制,但您可以单击该按钮的实际位置不会更改,因此您必须实现自己的逻辑来处理此问题.
使用属性动画系统,可以完全删除这些约束,并且可以为任何对象(视图和非视图)的任何属性设置动画,并且实际修改了对象本身.属性动画系统在执行动画方面也更加强大.在较高级别,您可以将动画师分配给要设置动画的属性,例如颜色,位置或大小,并可以定义动画的各个方面,例如多个动画师的插值和同步.
但是,视图动画系统设置时间较短,编写代码较少.如果视图动画完成了您需要执行的所有操作,或者现有代码已按您所需的方式工作,则无需使用属性动画系统.如果出现用例,将两种动画系统用于不同情况也是有意义的.
小智 15
基本上Tween动画是标准动画,
例如:缩放,旋转,平移等(这些可以应用于任何类型的视图)
名称建议的属性动画在哪里用于更改任何视图的属性.
例如:更改ImageView的Alpha,在棒棒糖中更改fab按钮的translationZ值等.
希望澄清一下.
补间动画可以对View对象的内容执行一系列简单的转换(位置,大小,旋转和透明度).因此,如果您有TextView对象,则可以移动,旋转,增大或缩小文本.如果它有背景图像,背景图像将与文本一起转换.动画包提供补间动画中使用的所有类.
属性动画系统是一个强大的框架,允许您动画几乎任何东西.您可以定义动画以随时间更改任何对象属性,无论它是否绘制到屏幕上.属性动画在指定的时间长度内更改属性(对象中的字段)值.要为某些内容设置动画,请指定要设置动画的对象属性,例如对象在屏幕上的位置,要为其设置动画的时间长度以及要在其间设置动画的值.
试试这个简短的答案:
res/anim - 任何视图Tween Animation(缩放,旋转,平移).
res/animator - 某些视图属性动画(ImageView - 更改alpha,FAB - 设置Z顺序).
归档时间: |
|
查看次数: |
10315 次 |
最近记录: |