2 つの異なるアニメーションを使用して、ある種の imageGallery を作成したいと考えています。現在表示されている画像をクリックすると、「OK-Image」がフェードインし (1 秒、繰り返されません)、アニメーションが終了した後、次の画像が表示されます。
各画像には無限に繰り返されるアニメーションがあります (通常の表示、拡大表示)
それで ..
- ステップ 1: 画像の無限アニメーション (通常 => ズーム => 通常..)
- ステップ 2: クリック
- ステップ 3: 「OK-Image」を表示 (1 秒でフェード)
- ステップ1 ...
問題は、OK-Animation の Animation Listener がヒットし、Infinite Animation の AnimationListener がヒットしないことです。
@Override
public void onCreate(Bundle savedInstanceState) {
fadeInOKAnimation = AnimationUtils.loadAnimation(this, R.anim.fadeinonce);
fadePermanentAnimation = AnimationUtils.loadAnimation(this, R.anim.fadeininfinite);
fadeInOKAnimation.setAnimationListener(fadeInOKAnimationListener);
fadePermanentAnimation.setAnimationListener(fadePermanentAnimationListener);
}
AnimationListener fadeInOKAnimationListener = new Animation.AnimationListener() {
public void onAnimationEnd(Animation animation)
{
ThreadHelper.sleep(500);
imgMessung.clearAnimation();
int currentImageId = currentStateImage.getNormalImage();
imgMessung.clearAnimation();
imgMessung.setImageResource(currentImageId);
imgMessung.startAnimation(fadePermanentAnimation);
}
public void onAnimationRepeat(Animation animation) { }
public void onAnimationStart(Animation animation) { }
};
AnimationListener fadePermanentAnimationListener = new Animation.AnimationListener() {
public void onAnimationEnd(Animation animation) { }
public void onAnimationRepeat(Animation animation) {
StateImage currentStateImage = messung.GetCurrentImage();
if(currentImageState == ImageState.Normal)
{
int currentImageId = Integer.parseInt(currentStateImage.getNormalImage());
imgMessung.setImageResource(currentImageId);
}
else
{
int currentImageId = Integer.parseInt(currentStateImage.getZoomedImage());
imgMessung.setImageResource(currentImageId);
}
}
public void onAnimationStart(Animation animation) { }
};