2013-06-02 3 views
0

Я создал четыре ImageViews динамически, когда я нажимаю кнопку, я хочу изменить каждое изображение через одну секунду, но все они меняются через четыре секунды. Может ли кто-нибудь дать мне предложение относительно проблемы?Android ImageView не обновляется

public void Run_Click(View view) { 
    int j=10; 
    try { 
     while(true) { 
      if(j<14) { 
       im=(ImageView)findViewById(j); 
       im.setImageResource(R.drawable.open); 
       Thread.sleep(1000); 
       j++; 
      } else { 
       j=10; 
       for(int i=10;i<14;i++) { 
        im=(ImageView)findViewById(i); 
        im.setImageResource(R.drawable.close); 
       } 
       Thread.sleep(2000); 
       } 
    } 
+0

таймер Я надеюсь, что вы сделали сон не в UI тему? Если нет в потоке пользовательского интерфейса, вы не можете изменять элементы интерфейса из этого потока. – Borys

ответ

1

Вы спите в потоке пользовательского интерфейса, и это очень очень очень очень очень и очень очень плохой подход.

Пожалуйста, посмотрите here:

общественности недействительным ADDFRAME (рисуем кадр, длительность INT)

Добавлено в уровне API 1 Добавить рамку к анимации

Параметры кадра Рамка для добавить продолжительность Как долго в миллисекундах должна появиться рамка

и используйте метод addFrame.

Вам просто нужно указать Drawable и продолжительность.

0

Вы не должны использовать thread.sleep() его плохой подход к дизайну. Вызов thread.sleep() в потоке ui - плохой дизайн. Даже если вы используете поток, некоторые вычисления не используют thread.sleep().

Если вы реализуете тему или HandlerThread, убедитесь, что ваш UI поток не блокируется во время ожидания рабочего потока complete- не называют Thread.wait() или Thread.sleep(). Вместо блокировки, ожидая завершения рабочего потока, ваш основной поток должен предоставить обработчик для других потоков, которые будут отправляться обратно после завершения.

http://developer.android.com/training/articles/perf-anr.html

Вы можете попробовать несколько вариантов, указанных в ссылке, как обработчик, анимация Drawable и задачи

setBackgroundResource doesn't set the image

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