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

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


person djagtorf    schedule 08.04.2015    source источник


Ответы (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);

            }
person Karthika PB    schedule 08.04.2015