AndroidのResource - Property Animation
Animatorは抽象クラスであり、通常はそのサブクラスを使用する。
サブクラス
- AnimatorSet
- ValueAnimator
- ObjectAnimator
- TimeAnimator
ルート要素
- <set.../>
- <objectAnimator.../>
- <animator.../>
サンプルコード
① color_anim.xml
<?xml version="1.0" encoding="utf-8"?> <objectAnimator xmlns:android="http://schemas.android.com/apk/res/android" android:propertyName="backgroundColor" android:duration="3000" android:valueFrom="#FF8080" android:valueTo="#8080FF" android:repeatCount="infinite" android:repeatMode="reverse" android:valueType="intType"> </objectAnimator>
② activity_mail.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/container"> </LinearLayout>
③ MainActivity.java
package com.example.liguofeng.propertyanimationsample; import android.animation.AnimatorInflater; import android.animation.ArgbEvaluator; import android.animation.ObjectAnimator; import android.content.Context; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.LinearLayout; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); LinearLayout container = (LinearLayout) findViewById(R.id.container); // MyAnimationViewコンポーネント container.addView(new MyAnimationView(this)); } public class MyAnimationView extends View { public MyAnimationView(Context context) { super(context); // 動画リソース読み込み ObjectAnimator colorAnim = (ObjectAnimator) AnimatorInflater .loadAnimator(MainActivity.this, R.animator.color_anim); colorAnim.setEvaluator(new ArgbEvaluator()); // Viewに属性動画適用 colorAnim.setTarget(this); // 開始 colorAnim.start(); } } }