如何使ImageSwitcher每5秒切换一次图像



我试图让ImageSwitcher每5秒更改一个图像。。

我尝试使用Timer:

Timer t = new Timer();
          //Set the schedule function and rate
          t.scheduleAtFixedRate(new TimerTask() {
              public void run() {
                  //Called each time when 1000 milliseconds (1 second) (the period parameter)
                  currentIndex++;
                // If index reaches maximum reset it
                 if(currentIndex==messageCount)
                     currentIndex=0;
                 imageSwitcher.setImageResource(imageIds[currentIndex]);
              }
          },0,5000);

但我得到了这个错误:

LOGCAT:

12-14 15:07:29.963: E/AndroidRuntime(25592): FATAL EXCEPTION: Timer-0
12-14 15:07:29.963: E/AndroidRuntime(25592): android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
Timer t = new Timer();
      //Set the schedule function and rate
      t.scheduleAtFixedRate(new TimerTask() {
          public void run() {
              //Called each time when 1000 milliseconds (1 second) (the period parameter)
              currentIndex++;
            // If index reaches maximum reset it
             if(currentIndex==messageCount)
                 currentIndex=0;
             runOnUiThread(new Runnable() {
                public void run() {
                   imageSwitcher.setImageResource(imageIds[currentIndex]);
                }
          });
          }
      },0,5000);
Only the original thread that created a view hierarchy can touch its views.

计时器任务在其他线程上运行。应在Ui线程上更新Ui。

使用runOnUiThread

runOnUiThread(new Runnable() {
        public void run() {
         imageSwitcher.setImageResource(imageIds[currentIndex]);
        }
    });

您也可以使用Handler而不是计时器。

编辑:

检查此setBackgroundResource是否';t设置图像,如果它有助于

相关内容

  • 没有找到相关文章

最新更新