Android Изменить картинку каждые 10 секунд

Я пытаюсь написать очень простое приложение для Android, которое отображает около 5 снимков один за другим на экране. Я хочу, чтобы он отображал другое изображение примерно через 10 секунд. Может ли кто-нибудь посоветовать мне, как я обойду это. Ниже я изложил, что я буду искать.

Фото 1
Фото 2
Фото 3
Фото 4
Фото 5

Отображение полного экрана Изображение 1
Подождите 10 секунд
Удалить изображение 1 и изображение с изображением 2
Подождите 10 секунд
Удалить изображение 2 и отобразить изображение 3
Подождите 10 секунд
Снимите снимок 3 и изображение 4
Подождите 10 секунд
Удалить изображение 4 и отобразить изображение 5
Подождите 10 секунд

Начать снова

Solutions Collecting From Web of "Android Изменить картинку каждые 10 секунд"

Считаете ли вы использование Frame Animations ?

Вы можете указать xml в вашей папке анимации, которая содержит покадровую анимацию, задающую продолжительность каждого изображения и другие настройки, проверьте это

ОБНОВИТЬ

Конечно, вы можете также создать анимацию кадра:

AnimationDrawable animation = new AnimationDrawable(); animation.addFrame(getResources().getDrawable(R.drawable.image1), 100); animation.addFrame(getResources().getDrawable(R.drawable.image2), 500); animation.addFrame(getResources().getDrawable(R.drawable.image3), 300); animation.setOneShot(false); ImageView imageAnim = (ImageView) findViewById(R.id.img); imageAnim.setBackgroundDrawable(animation); // start the animation! animation.start() 

Вы можете использовать CountDownTimer : выполните следующие действия:

1) объявить array который будет содержать идентификаторы ваших изображений

2) объявите CountDownTimer следующим образом:

 int i=0; new CountDownTimer(10000,1000) { @Override public void onTick(long millisUntilFinished) {} @Override public void onFinish() { imgView.setImageDrawable(sdk.getContext().getResources().getDrawable(array[i])); i++; if(i== array.length-1) i=0; start(); } }.start(); 

Создать blink.xml

 <?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/selected" android:oneshot="false"> <item android:drawable="@drawable/Picture_1" android:duration="10000" /> <item android:drawable="@drawable/Picture_2" android:duration="10000" /> <item android:drawable="@drawable/Picture_3" android:duration="10000" /> <item android:drawable="@drawable/Picture_4" android:duration="10000" /> <item android:drawable="@drawable/Picture_5" android:duration="10000" /> </animation-list> 

Поместите blink.xml в папку с возможностью переноса и в действии Code напишите это.

 ImageView mImageView ; mImageView = (ImageView)findViewById(R.id.imageView); //this is your imageView mImageView .setImageDrawable(getResources().getDrawable( R.drawable.blink)); 

То вы получите то, что хотите.!

Создайте Runnable который выполнит Runnable изменение (я предполагаю, что он изменит растровое изображение ImageView ), и postDelayed() их с задержкой в ​​цикле основного потока, используя Handler и его postDelayed() .

Чтобы сделать это циклом, вы могли бы запустить runnable post.