У меня есть AnimationDrawable, который анимирует набор кадров.
Как осуществить перезапуск каждые 10 секунд?Repeat AnimationDrawable каждые несколько секунд
Спасибо.
У меня есть AnimationDrawable, который анимирует набор кадров.
Как осуществить перезапуск каждые 10 секунд?Repeat AnimationDrawable каждые несколько секунд
Спасибо.
Да, вы можете, просто отдайте свой последний кадр еще на 10 секунд. Пример -
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false">
<item android:drawable="@drawable/image" android:duration="100" />
<item android:drawable="@drawable/image1" android:duration="100" />
<item android:drawable="@drawable/image2" android:duration="100" />
<item android:drawable="@drawable/image3" android:duration="100" />
<item android:drawable="@drawable/image4" android:duration="10100" />
</animation-list>
Надеется, что это поможет :)
int count = -1;
Timer mTimer = new Timer();
mTimer.schedule(new TimerTask() {
@Override
public void run() {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
count++;
if (count >= imageArray.length)
count = 0;
MyImageView.setImageResource(imageArray[position]);
}
});
}
}, 0, 10000);
Спасибо! Есть ли способ сделать это из кода, более «элегантным» способом, например, использовать какой-то таймер или обработчик (что я не уверен, как это сделать)? – amitairos
Вы также можете использовать таймер, но я думаю, что это лучший способ сделать это, потому что вся задержка и перезапуск анимации будут выполняться одним и тем же потоком. Если вы хотите обработать его с помощью таймера, таймер будет излишне создавать еще один дополнительный поток. Поэтому я никогда не буду рекомендовать использовать таймер или обработчик. – Neo
ОК. Спасибо за совет! – amitairos