ImageView
アニメーションを使用してフェードアウトしようとしています。アニメーションが実行され、 がフェードアウトしますImageView
が、画像は完全に不透明に戻ります。なぜこれが起こるのですか?
private void fadeOutImage() {
final ImageView imageView = (ImageView) activity.findViewById(R.id.imageView);
imageView.startAnimation(AnimationUtils.loadAnimation(activity, R.anim.fadeout));
}
以下のようにアルファをゼロに設定しようとしましたが、画像は期間を表示しませんでした。なぜだめですか?
private void fadeOutImage() {
final ImageView imageView = (ImageView) activity.findViewById(R.id.imageView);
imageView.setAlpha(0);
imageView.startAnimation(AnimationUtils.loadAnimation(activity, R.anim.fadeout));
}
これを機能させるには、 を作成しAnimationListener
、 をオーバーロードしonAnimationEnd
、そこでアルファをゼロに設定する必要がありました。なんで?
final ImageView imageView = (ImageView) activity.findViewById(id);
Animation animation = AnimationUtils.loadAnimation(activity, R.anim.fadeout);
animation.setAnimationListener(new AnimationListener() {
@Override public void onAnimationStart(Animation animation) {
imageView.setAlpha(255);
}
@Override public void onAnimationRepeat(Animation animation) { }
@Override public void onAnimationEnd(Animation animation) {
imageView.setAlpha(0);
}
});
imageView.startAnimation(animation);
アニメーション XML:
<alpha
android:duration="1500"
android:fromAlpha="1.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:toAlpha="0.0" />