58

我开始在视图动画上使用属性动画,因为我有一个视图需要缩放并将其他视图推开。我看过一些例子,但我只是想知道是否有任何地方提供可以使用这些类更改的属性列表。例如,我看到一个教程使用以下方法进行了快速旋转:

ObjectAnimator.ofFloat(aniView, "rotation", 360)

这很酷,但如果不是那个确切的教程,我不会知道旋转属性,有没有可以做的综合列表?如果有人对此有任何具体建议,我想要制作动画的特定属性是 LinearLayout 中视图的权重。

4

4 回答 4

63

迟到总比没有好,所以这里是可以使用 ObjectAnimator 进行动画处理的属性的完整列表。

http://developer.android.com/guide/topics/graphics/prop-animation.html#views

于 2013-02-08T23:29:11.010 回答
28

文档ObjectAnimator暗示只要您遵循命名约定,就可以使用任何值:

  1. 您正在制作动画的对象属性必须具有形式为set<propertyName>(). 因为 ObjectAnimator 在动画过程中会自动更新属性,所以它必须能够使用这个 setter 方法来访问属性。例如,如果属性名称是foo,则需要有一个 setFoo()方法。如果此 setter 方法不存在,您有三个选项:
    • 如果您有权这样做,请将 setter 方法添加到类中。
    • 使用您有权更改的包装器类,并让该包装器使用有效的 setter 方法接收值并将其转发给原始对象。
    • 请改用 ValueAnimator。
  2. [...]

关于你的问题,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.

于 2014-06-29T06:05:50.153 回答
26

以下是您正在寻找的属性名称的完整列表:

  • 回转
  • 旋转X
  • 旋转Y
  • 翻译X
  • 翻译Y
  • 比例尺X
  • 规模Y
  • 枢轴X
  • 枢轴Y
  • α
  • X
  • 是的

来源:文档

于 2017-09-10T17:18:30.250 回答
0

使用“ translateX ”或“ transalteY ”移动一个<group> 看看vectorDrawable

于 2019-02-22T16:50:39.053 回答