0

this is my activity:

public class MainActivity extends Activity implements Animation.AnimationListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    animation1 = AnimationUtils.loadAnimation(this,R.anim.to_middle);
    animation2 = AnimationUtils.loadAnimation(this, R.anim.from_middle);
    animation2.setAnimationListener(this);
    animation1.setAnimationListener(this);
}
@Override
public void onAnimationEnd(Animation animation) {

    if (animation == animation1) {
        if (isBackOfCardShowing) {
            imageview1.setImageResource(R.drawable.dog);
        } else {
            imageview1.setImageResource(R.drawable.card);
        }
        imageview1.clearAnimation();

    } else {
        isBackOfCardShowing=!isBackOfCardShowing;
    }

I have animation in my project and implements AnimationListener in my activity.How i use switch in onAnimationEnd method? and put this code in first case?

if (animation == animation1) {
            if (isBackOfCardShowing) {
                imageview1.setImageResource(R.drawable.dog);
            } else {
                imageview1.setImageResource(R.drawable.card);
            }
             imageview1.clearAnimation();

        } else {
            isBackOfCardShowing=!isBackOfCardShowing;
        }

I search in internet but not find tutorial about this

POUYA KARIMI
  • 327
  • 1
  • 3
  • 6

1 Answers1

0

switch statement can only be int. You can create an enum of your animations and do

public enum ANIM {ANIMATION0,ANIMATION1,ANIMATION2
//ANIMATION3,4,5...
}

public void onAnimationEnd(Animation animation) {
    int ANIM = getANIM(animation);
    switch(ANIM) {
       case ANIMATION0:
            break;
       case ANIMATION1:
            if (isBackOfCardShowing) {
                imageview1.setImageResource(R.drawable.dog);
            } else {
                imageview1.setImageResource(R.drawable.card);
            }
            imageview1.clearAnimation();

            } else {
            isBackOfCardShowing=!isBackOfCardShowing;
            }
            break;
       case ANIMATION2:
            break;
       //ANIMATION3,4,5...

    }
}
public int getANIM(Animation animation) {
    Animation animation0 = whatever0;
    Animation animation1 = whatever1;
    Animation animation2 = whatever2;
    if (animation == animation0) {
        return 0;
    } else if (animation == animation1) {
        return 1;
    } else if (animation == animation2) {
        return 2;
    }
    //else if ANIMATION3,4,5...
}
Jisu Hong
  • 724
  • 1
  • 7
  • 22