Анимация при смене ресурса изображения
Я пытаюсь несколько раз изменить изображения в представлении изображения (не имеет значения, какой компонент использовать). Мне нужно менять фоновое изображение каждые 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);
}