Анимация при смене ресурса изображения

Я пытаюсь несколько раз изменить изображения в представлении изображения (не имеет значения, какой компонент использовать). Мне нужно менять фоновое изображение каждые N секунд.
Я попытался использовать анимацию рисования объявляющих изображений в файле XML.
Это работает, но я не знаю, применять ли к нему какие-либо эффекты, такие как плавность, размытие или что-то другое.
Поэтому моя задача - периодически менять фоновое изображение с эффектом перехода.
Подскажите пожалуйста как бороться с этой проблемой, буду очень признателен за любую помощь.

1 ответ

Я использовал переключатель изображений для переключения изображений через равные промежутки времени

XML часть

 <ImageSwitcher
                         android:id="@+id/smsimg"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"

                         android:src="@drawable/defaultimage" />

код класса был таким

 private final int[] images  = {  R.drawable.vava, R.drawable.vavaone,R.drawable.vavatwo,R.drawable.vavathree,R.drawable.vavafour,
                };


 @Override
        protected void onCreate(Bundle savedInstanceState) {

    img=(ImageSwitcher)findViewById(R.id.smsimg);
            startAnimatedBackground();  



     private void startAnimatedBackground() {
                Animation aniIn = AnimationUtils.loadAnimation(this,
                        android.R.anim.fade_in);
                aniIn.setDuration(3000);
                Animation aniOut = AnimationUtils.loadAnimation(this,
                        android.R.anim.fade_out);
                aniOut.setDuration(3000);

                final ImageSwitcher imageSwitcher = (ImageSwitcher) findViewById(R.id.smsimg);
                imageSwitcher.setInAnimation(aniIn);
                imageSwitcher.setOutAnimation(aniOut);
                imageSwitcher.setFactory(this);
                imageSwitcher.setImageResource(images[index]);

                final Handler handler = new Handler();
                Runnable runnable = new Runnable() {

                    @Override
                    public void run() {
                        if (isRunning) {
                            index++;
                            index = index % images.length;
                            Log.d("Intro Screen", "Change Image " + index);
                            imageSwitcher.setImageResource(images[index]);
                            handler.postDelayed(this, interval);
                        }
                    }
                };
                handler.postDelayed(runnable, interval);

            }
Другие вопросы по тегам