2016-06-15 3 views
1

Я новичок в разработке приложений для Android. Могу ли я узнать, как загрузить разные изображения в один ImageView через 5 секунд? Вот код, который я написал, но он загружается только один раз.Android Picasso изменить изображение за определенное время

private static final ScheduledExecutorService worker = 
     Executors.newSingleThreadScheduledExecutor(); 

public void changeImage(){ 
    for(int i=0;i<3;i++) { 
     Runnable task = new Runnable() { 
      public void run() { 
       Picasso.with(c) 
         .load(arrPic.get(i)) 
         .resize(300, 300) 
         .skipMemoryCache() 
         .into(iv) 
      } 
     }; 
     worker.schedule(task, 5*i, TimeUnit.SECONDS); 
    } 
} 
+0

вы думаете, это правильный путь, чтобы использовать планировщик внутри итератора. –

+0

как для меня (для итератора) не работает после первого запуска. работает только планировщик. и массив получает только i = 0 каждый раз. –

+0

Я не уверен. Я только что нашел, что это один из способов отложить задачу до желаемого времени. Однако для итератора он работает нормально. Он проходит три раза в последовательности 1,2,3 и получает три разных изображения из массива. –

ответ

0

создать некоторые переменные/Объекты

private int i = 0; 
Handler handler = new Handler(); 
private int DELAY = 5000; 

Runnable runnable = new Runnable() { 
    @Override 
    public void run() { 
     if(i<arrPic.size()) { 
      Picasso.with(MainActivity.this) 
        .load(arrPic.get(i)) 
        .resize(300, 300) 
        .skipMemoryCache() 
        .into(imageView); 
      handler.postDelayed(runnable, DELAY); 
      i++; 
     } else { 
      handler.removeCallbacks(runnable); 
     } 
    } 
}; 

вызова этого метод/строку, в которой вы хотите начать ImageView заменить силу по

handler.postDelayed(runnable, 0); 
+0

попытайтесь увеличить продолжительность времени –

+0

Прошу прощения. Я использовал неправильный способ тестирования кода только сейчас. Фактически в общей петле три раза Picasso только успешно загрузил изображение, которое является последним изображением в «ImageView». –

+0

так работает сейчас? –

Смежные вопросы