ImageSwitcher отображает изображение перед его анимацией

Я начинающий, когда дело доходит до этих вещей, поэтому извиняюсь, если это простой вопрос.

Я пытаюсь реализовать ImageSwitcher для циклического перебора набора изображений. Для этого я пытаюсь реализовать таймер, как описано здесь: Как заставить ImageSwitcher переключать изображение каждые 5 секунд?

Я получаю изображения циклически проходящими, но изображение загружается, и затем происходит анимация. Будет отображаться изображение 1, затем оно переключится на изображение 2, затем исчезнет изображение 2 и снова исчезнет. Изображение 2 будет отображаться в течение указанного времени, и процесс повторяется.

Я хочу, чтобы изображение 1 исчезло, а затем исчезло изображение 2.

Вот что у меня так далеко:

imageSwitcher = (ImageSwitcher) findViewById(R.id.welcome_image);
    imageSwitcher.setFactory(this);
    imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));
    imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out));

Таймер от вышеупомянутого вопроса:

Timer t = new Timer();
  //Set the schedule function and rate
  t.scheduleAtFixedRate(new TimerTask() {
public void run() {
          //Called each time when 1000 milliseconds (1 second) (the period parameter)
          currentIndex++;
        // If index reaches maximum reset it
         if(currentIndex==messageCount)
             currentIndex=0;
         runOnUiThread(new Runnable() {

            public void run() {


                imageSwitcher.setImageResource(imageIDs[currentIndex]);

            }
      });
      }

  },1000,5000);

А также

public View makeView() {
    ImageView imageView = new ImageView(this);
    imageView.setBackgroundColor(0x00000000);
    imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
    imageView.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
    return imageView;
}

Я был бы очень признателен за помощь.

1 ответ

Решение

Вы устанавливаете setInAnimation() 2 раза. Вы не установили setOutAnimation().

Подобно:

imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));
imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,   
android.R.anim.fade_out));
Другие вопросы по тегам