Property Animation
Android3.0(API level 11)からサポートされ、Viewsに限らず、どんなオブジェクトのプロパティにも指定した時間間隔で、アニメーションを行うことができます。ここでいうプロパティとはアニメーションに必要な設定値を指しています(例えば、色の変化値、透明度など)。このシステムは拡張性があり、カスタムタイプのプロパティにも適しています。サンプルプログラムの説明
View Animation
View Animationは、従来のシステムで、Viewsにのみアニメーションを行うことが出来ます。設定が簡単で、Viewsの移動、拡大縮小、透過度の変化など、基本的な機能を備えています。
サンプルプログラムの説明
サンプルプログラムの説明
Drawable Animation
Drawable Animationは、Drawable リソースを次から次へと表示することが出来きます。パラパラ漫画のような連続的なアニメーションを行うことが出来ます。
サンプルプログラムの説明
サンプルプログラムの説明
サンプルプログラムは、各アニメーションを最も簡単な例で示しています。詳細は各アニメーションの紹介ページ(Property Animation, View Animation, Drawable Animation)で説明しています。参考にしてください。
public class SampleAnimation extends Activity {
private static final int RED = 0xffFF8080;
private static final int BLUE = 0xff8080FF;
AnimationDrawable mAnimationDrawable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Property Animation: Changing TextColor-------------------------------------
Button btnColor = (Button) findViewById(R.id.btncolor);
//Define an object and property in ObjectAnimator
ObjectAnimator animColor = ObjectAnimator.ofInt(btnColor,"textColor", RED, BLUE);
//Set duration time (ms)
animColor.setDuration(3000);
//Set Evaluator, how to calculate the specified values.
animColor.setEvaluator(new ArgbEvaluator());
//Set repeat count
animColor.setRepeatCount(ValueAnimator.INFINITE);
//Set repeat mode
animColor.setRepeatMode(ValueAnimator.REVERSE);
//Animation starts
animColor.start();
//View Animation: Changing Transparency--------------------------------------
Button btnAlpha = (Button) findViewById(R.id.btnalpa);
//Set a value of transparency
AlphaAnimation alp1 = new AlphaAnimation(1.0f, 0.0f);
//Set duration time (ms)
alp1.setDuration(3000);
//Set repeat count
alp1.setRepeatCount(Animation.INFINITE);
//Animation starts
btnAlpha.startAnimation(alp1);
//Drawable Animation: Changing Images ----------------------------------------------
//Create AnimationDrawable
mAnimationDrawable = new AnimationDrawable();
//Set frames
Drawable[] mFrame = new Drawable[2];
mFrame[0] = getResources().getDrawable( R.drawable.imgcat1);
mFrame[1] = getResources().getDrawable( R.drawable.imgcat2);
//Add frames to AnimationDrawable
for(int i = 0; i < mFrame.length; i++){
mAnimationDrawable.addFrame( mFrame[i], 200);
}
ImageView imageView = (ImageView) findViewById(R.id.image);
//Set the animation to background drawable
imageView.setBackgroundDrawable(mAnimationDrawable);
//Animation starts
imageView.post(new Runnable(){
public void run(){
mAnimationDrawable.setOneShot(false);
mAnimationDrawable.start();
}
});
}
}
0 件のコメント:
コメントを投稿