2

I am trying to do fading animation in android. By clicking an image transition takes place, and I can see next image.

But how to move back to first image by clicking second image?

public void fade (View view) {
    ImageView naruto = (ImageView) findViewById(R.id.naruto);
    ImageView sasuke = (ImageView) findViewById(R.id.sasuke);
    naruto.animate().alpha(0f).setDuration(2000);
    sasuke.animate().alpha(1f).setDuration(2000);
}

public void reappear (View view) {
    ImageView sasuke1 = (ImageView) findViewById(R.id.sasuke);
    ImageView naruto1 = (ImageView) findViewById(R.id.naruto);
    sasuke1.animate().alpha(0f).setDuration(2000);
    naruto1.animate().alpha(1f).setDuration(2000);
}
L. Swifter
  • 3,179
  • 28
  • 52
Luther
  • 573
  • 1
  • 6
  • 16

1 Answers1

1

Fade:

public void fade (View view) {
    ImageView naruto = (ImageView) findViewById(R.id.naruto);
    ImageView sasuke = (ImageView) findViewById(R.id.sasuke);
    naruto.animate().alpha(0f).setDuration(2000).setListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationEnd(Animator animation) {
            naruto.setVisibility(View.GONE);
        }
    });
    sasuke.setAlpha(0f);
    sasuke.setVisibility(View.VISIBLE);
    sasuke.animate().alpha(1f).setDuration(2000).setListener(null);
}

Reappear:

public void reappear (View view) {
    ImageView sasuke = (ImageView) findViewById(R.id.sasuke);
    ImageView naruto = (ImageView) findViewById(R.id.naruto);
    sasuke.animate().alpha(0f).setDuration(2000).setListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationEnd(Animator animation) {
            naruto.setVisibility(View.GONE);
        }
    });
    naruto.setAlpha(0f);
    naruto.setVisibility(View.VISIBLE);
    naruto.animate().alpha(1f).setDuration(2000);
}
L. Swifter
  • 3,179
  • 28
  • 52
  • 1
    No need for AnimatorListenerAdapter or AnimatorListener when dealing with ViewPropertyAnimators. Instead you can use: `sasuke.animate().alpha(0f).setDuration(2000).withEndAction(new Runnable() { @Override public void run() { sasuke.setVisibility(View.GONE); } });` – liminal Aug 15 '16 at 03:30