我开始在视图动画上使用属性动画,因为我有一个视图需要缩放并将其他视图推开。我看过一些例子,但我只是想知道是否有任何地方提供可以使用这些类更改的属性列表。例如,我看到一个教程使用以下方法进行了快速旋转:
ObjectAnimator.ofFloat(aniView, "rotation", 360)
这很酷,但如果不是那个确切的教程,我不会知道旋转属性,有没有可以做的综合列表?如果有人对此有任何具体建议,我想要制作动画的特定属性是 LinearLayout 中视图的权重。
我开始在视图动画上使用属性动画,因为我有一个视图需要缩放并将其他视图推开。我看过一些例子,但我只是想知道是否有任何地方提供可以使用这些类更改的属性列表。例如,我看到一个教程使用以下方法进行了快速旋转:
ObjectAnimator.ofFloat(aniView, "rotation", 360)
这很酷,但如果不是那个确切的教程,我不会知道旋转属性,有没有可以做的综合列表?如果有人对此有任何具体建议,我想要制作动画的特定属性是 LinearLayout 中视图的权重。
迟到总比没有好,所以这里是可以使用 ObjectAnimator 进行动画处理的属性的完整列表。
http://developer.android.com/guide/topics/graphics/prop-animation.html#views
文档ObjectAnimator
暗示只要您遵循命名约定,就可以使用任何值:
- 您正在制作动画的对象属性必须具有形式为
set<propertyName>()
. 因为 ObjectAnimator 在动画过程中会自动更新属性,所以它必须能够使用这个 setter 方法来访问属性。例如,如果属性名称是foo
,则需要有一个setFoo()
方法。如果此 setter 方法不存在,您有三个选项:
- 如果您有权这样做,请将 setter 方法添加到类中。
- 使用您有权更改的包装器类,并让该包装器使用有效的 setter 方法接收值并将其转发给原始对象。
- 请改用 ValueAnimator。
- [...]
关于你的问题,View
有方法setRotation(float)
- 给你一个可以使用的提示。特别是这里是你将如何使用特定的TimeInterpolator
:
ObjectAnimator anim = ObjectAnimator.ofFloat(myView, "rotation", 0f, 90f);
anim.setDuration(2000); // Duration in milliseconds
anim.setInterpolator(timeInterpolator); // E.g. Linear, Accelerate, Decelerate
anim.start() // Begin the animation
您可以阅读文档以了解有关ObjectAnimator
.
使用“ translateX ”或“ transalteY ”移动一个<group>
看看vectorDrawable