我試圖用動畫淡出ImageView
。動畫運行,淡出了ImageView
,但圖像回到完全不透明狀態。爲什麼會發生?爲什麼ImageView alpha動畫意外行爲?
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" />
你嘗試過'imageView.clearAnimation();'當動畫結束? – MKJParekh
@MKJParekh不,你問爲什麼? –
我通常使用''Animation.setFillAfter(true)''。不知道這是否是最佳做法,但在大多數情況下都適用於我。 – harism