首页 文章

可以使用ObjectAnimator进行动画制作的Android属性

提问于
浏览
46

我开始在视图动画中使用属性动画,因为我有一个需要扩展的视图,并将其他视图放在一边 . 我已经看过一些例子,但我只是想知道是否有任何地方提供了可以使用这些类改变的属性列表 . 例如,我看到一个教程使用以下方法进行快速轮换:

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

这很酷,但如果没有那个确切的教程,我就不会知道旋转属性,是否有任何可以做的全面列表?我想要设置动画的特定属性是LinearLayout中视图的权重,如果有人对此有任何建议 .

3 回答

  • 23

    Docs暗示只要遵循命名约定,任何值都可以与 ObjectAnimator 一起使用:

    您正在设置动画的对象属性必须具有set <propertyName>()形式的setter函数(在camel情况下) . 因为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 期望的更多详细信息 .

  • 12

    迟到总比没有好,所以这里是可以用ObjectAnimator动画的全面属性列表 .

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

  • 55

    以下是您要查找的属性名称的完整列表:

    • 轮换

    • rotationX

    • rotationY

    • translationX

    • translationY

    • scaleX

    • scaleY

    • pivotX

    • pivotY

    • alpha

    • x

    • y

    资料来源:Docs

相关问题