2012年6月17日日曜日

Android で 画像のフェードアウト

使えそうなコードをチョコチョコ貼り付けしだしてみます・・・

まずは Java

ImageView image = (ImageView)findViewById(R.id.image);
fadeout = AnimationUtils.loadAnimation(this,R.anim.image_fadeout);
fadeout.setAnimationListener(new AnimationListener(){

@Override
public void onAnimationEnd(Animation animation) {
// アニメーションの最後は完全にimageを消し去るよ?
image.setVisibility(View.GONE);
}

@Override
public void onAnimationRepeat(Animation animation) {
}

@Override
public void onAnimationStart(Animation animation) {
}
});

fadeout_image = new Runnable(){
public void run(){
image.startAnimation(fadeout);
}
};

//3秒後にアニメーション開始
handler.postDelayed(fadeout_image,3000);


つづいて

fadeout = AnimationUtils.loadAnimation(this,R.anim.image_fadeout);

で定義してるアニメーション

res/anim/image_fadeout.xml

を配置XMLに

xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="2000"
android:interpolator="@android:anim/linear_interpolator"
/>

を入れるだけ



alpahは透明処理(厳密には違うけど・・・)

fromAlpha = 1.0 ではっきりくっきり見せる (アニメーションの開始)

toAlpha = 0.0 でまったく見えなくする

はっきりくっきり => まったく見えなくするのを duration 2000msec かけて実行するよ?

このときの動き(interpolator)はlinear_interpolator等速だよ?

ということです



以上!

0 件のコメント:

コメントを投稿