アニメーションのリソースには2種類あります:
属性アニメーション
アニメーションは、Animatorクラスに関連付けられたオブジェクトのプロパティの値を一定時間変更することで作成されます。
アニメーションを見る
ビューアニメーションフレームには2種類あります。
補完アニメーション:アニメーションは、Animationクラスに関連付けられた1つのイメージを通して一連の遷移を実行することによって作成されます。
フレームアニメーション:AnimationDrawableクラスの順序に関連する一連のイメージを表示することによってアニメーションを作成します。
属性アニメーション
アニメーションは、背景色やアルファ値など、変更されるターゲットオブジェクトのプロパティのXMLで定義されます。
ファイルの場所
res/animator/filename.xmlでは、ファイル名がリソースIDとして使用されます。
コンパイルされるリソースのタイプ:
リソースは、ValueAnimator、ObjectAnimator、または AnimatorSet タイプを指す必要があります。
リソース引用:
Javaコードの場合:R.animation.filename
XMLファイル中:@[package:]animator/filename
文法:
<set
android:ordering=["together" | "sequentially"]>
<objectAnimator
android:propertyName="string"
android:duration="int"
android:valueFrom="float | int | color"
android:valueTo="float | int | color"
android:startOffset="int"
android:repeatCount="int"
android:repeatMode=["repeat" | "reverse"]
android:valueType=["intType" | "floatType"]/>
<animator
android:duration="int"
android:valueFrom="float | int | color"
android:valueTo="float | int | color"
android:startOffset="int"
android:repeatCount="int"
android:repeatMode=["repeat" | "reverse"]
android:valueType=["intType" | "floatType"]/>
<set>
...
</set>
</set>
このファイルには、<set>、<objectAnimator>、<valueAnimator>のいずれかのヒール要素を1つだけ記述します。他の <set> 要素も含めて、アニメーション要素を <set> 要素の中でまとめることができます。
エレメント:
<セット
他のアニメーション要素を含むことができるコンテナ。AnimatorSet オブジェクトを表します。
<set>タグを入れ子にすることで、より多くのアニメーションをまとめることができます。それぞれの <set> は、それ自身の連続したプロパティを定義することができます。
属性:
アンドロイド:注文
このコレクション内のアニメーションの再生順序を指定するキー属性。
<オブジェクトアニメーター
特定の設定時間におけるオブジェクトの特定のアニメーション・プロパティは、ObjectAnimator オブジェクトを表します。
属性:
android:propertyName
文字列型、必須。この名前は、アニメーションのオブジェクト・プロパティを参照するために使用されます。例えば、"alpha" や "backgroundColor" 属性を View オブジェクトに割り当てることができます。ObjectAnimator 要素は target 属性を公開していないため、XML 宣言でオブジェクトをアニメーションに設定することはできません。したがって、XML 宣言でアニメーションに設定することはできません。アニメーション XML リソースには、loadAnimator() メソッドと setTarget() メソッドを呼び出して、この属性を含むターゲット オブジェクトを設定する必要があります。
android:valueTo
浮動小数点型、整数、またはカラー値。アニメーションプロパティの終了値です。色は6つの16進数で表されます。
android:valueFrom
アニメーションプロパティの開始値となる浮動小数点型、整数値、または色値。色は6桁の16進数で表されます。
アンドロイド:期間
整数型。デフォルトは300ミリ秒です。
android:startOffset
整数型。start()メソッドが呼ばれた後、アニメーションを何ミリ秒遅らせるかを指定します。
アンドロイド:リピート回数
整数型。アニメーションの繰り返し回数を指定します。無期限に繰り返す場合は"-1"、正の整数を指定します。例えば1を指定すると、アニメーション***が実行された後、1回繰り返されます。デフォルト値は 0 で、これは繰り返さないことを意味します。
アンドロイド:リピートモード
正の整数。アニメーションが終了したときの動作を指定します。このプロパティは、android:repeatCountが正の整数または"-1 "に設定されている場合にのみ効果があります。reverse "に設定された場合、アニメーションは繰り返されるたびに逆方向に再生され、"repeat "に設定された場合、アニメーションは繰り返されるたびにアニメーションの最初から再生されます。
android:valueType
キー属性。値が色値である場合、この属性を指定する必要はありません。アニメーションフレームワークは、カラー値を自動的に処理します。
(価値がある | 説明 |
intType | アニメーションの値が整数であることを指定します。 |
floatType | アニメーションの値が浮動小数点数であることを指定します。 |
<アニメーター
設定された時間内のアニメーション。ValueAnimator オブジェクトを表します。
属性:
android:valueTo
浮動小数点、整数、または色の値。アニメーションの終了時の値です。色の値は6桁の16進数で表されます。
android:valueFrom
浮動小数点、整数、または色の値。アニメーションを開始する値です。色の値は6桁の16進数で表されます。
アンドロイド:期間
整数。アニメーションの再生時間をミリ秒単位で指定します。デフォルトは300ミリ秒です。
android:startOffset
整数。start()メソッドが呼ばれた後、アニメーションを何ミリ秒遅らせるかを指定します。
アンドロイド:リピート回数
整数。アニメーションを繰り返す回数を指定します。1 "に設定するとアニメーションは無期限に繰り返されます。例えば、"1" に設定すると、アニメーションは最初の実行の後にもう1度繰り返され、合計で2回再生されます。デフォルト値は 0 で、これはアニメーションが繰り返されることを意味します。
アンドロイド:リピートモード
整数です。android:repeatCountは正の整数か"-1 "でなければなりません。reverse "に設定された場合、アニメーションは再生されるたびに逆方向に再生されます。"repeat "に設定された場合、アニメーションは再生されるたびに開始時と同じ位置で再生されます。
android:valueType
キー属性は、値が色の場合、この属性を指定する必要はありません。これは、アニメーションフレームワークが自動的に色の値を処理するためです。
(価値がある | 説明 |
intType | アニメーションの値が整数であることを指定します。 |
floatType | アニメーションの値が浮動小数点数であることを指定します。 |
例
このXMLファイルはres/animator/property_animator.xmlに保存されます:
<set android:ordering="sequentially">
<set>
<objectAnimator
android:propertyName="x"
android:duration="500"
android:valueTo="400"
android:valueType="intType"/>
<objectAnimator
android:propertyName="y"
android:duration="500"
android:valueTo="300"
android:valueType="intType"/>
</set>
<objectAnimator
android:propertyName="alpha"
android:duration="500"
android:valueTo="1f"/>
</set>
このアニメーションを実行するには、コード内でこの XML リソースに AnimatorSet オブジェクトを設定し、アニメーションセットを開始し、すべてのアニメーションにターゲットオブジェクトを設定する必要があります。setTarget メソッドを呼び出すことで、AnimatorSet オブジェクトのすべての子に単一のオブジェクトを簡単に設定できます。コードは以下の通りです:
AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(myContext, R.anim.property_animator);
set.setTarget(myObject);set.start();





