web-dev-qa-db-ja.com

Android ObjectAnimatorでアニメーション化できるプロパティ

ビューアニメーションを介してプロパティアニメーションをいじり始めています。ビューをスケーリングし、他の方法で邪魔にならないようにする必要があるためです。いくつかの例を見てきましたが、これらのクラスを使用して変更できるプロパティのリストを提供する場所がどこにあるのか疑問に思っています。たとえば、次を使用してクイックローテーションを行う1つのチュートリアルを見ました。

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

これは非常にクールですが、その正確なチュートリアルでない限り、回転プロパティはわかりませんでしたが、何ができるのか包括的なリストはありますか?アニメーション化する特定のプロパティは、LinearLayout内のビューの重みです(特にアドバイスがある場合)。

50

決して遅くない方が良いので、ここにObjectAnimatorでアニメーション化できるプロパティの包括的なリストを示します。

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

56
Onyx

Docs は、命名規則に従う限り、ObjectAnimatorで任意の値を使用できることを意味します。

  1. アニメーション化するオブジェクトプロパティには、set<propertyName>()の形式のセッター関数(キャメルの場合)が必要です。 ObjectAnimatorはアニメーション中にプロパティを自動的に更新するため、このセッターメソッドを使用してプロパティにアクセスできる必要があります。たとえば、プロパティ名がfooの場合、setFoo()メソッドが必要です。このセッターメソッドが存在しない場合、3つのオプションがあります。
    • 権限がある場合は、クラスにセッターメソッドを追加します。
    • 変更する権限があるラッパークラスを使用し、そのラッパーが有効なセッターメソッドで値を受け取り、元のオブジェクトに転送するようにします。
    • 代わりに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の期待に関する詳細については、ドキュメントをご覧ください。

24
bcorso

探しているプロパティ名の包括的なリストは次のとおりです。

  • 回転
  • rotationX
  • 回転Y
  • translationX
  • 翻訳Y
  • scaleX
  • scaleY
  • ピボットX
  • ピボットY
  • アルファ
  • バツ
  • y

ソース: Docs

16
Sagar

translateX」または「transalteY」を使用して、<group>vectorDrawable を見てください

0
Milk Littile