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()。このセッター メソッドが存在しない場合は、次の 3 つのオプションがあります。
    • 権限がある場合は、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 に答える