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));