【问题标题】:Setting images with a timer使用定时器设置图像
【发布时间】:2011-05-18 02:46:43
【问题描述】:

我正在尝试使用倒数计时器设置 600 毫秒延迟的图像,如下所示:

protected void onCreate(Bundle savedInstanceState) {
int order[3];
index=0;
  image1.setOnClickListener(this);

   @Override
   public void onClick(View arg0) 
   {
   order={2,1,3};

   do_switches();
   }

private void do_switches() 
{
   new CountdownTimer(3*600, 600) {

 public void onTick(long millisUntilFinished) {
     switch(order[index]){

    case 1:

        image1.setImageResource(R.drawable.one);
                break;

    case 2:

        image2.setImageResource(R.drawable.two);
                         break;

    case 3:
        image3.setImageResource(R.drawable.three);
                    break;

    }
    index++;

 }

 public void onFinish() {

 }
  }.start();

}

}

这是一个示例,但在我的实际代码中,我使用了更大的数组(大小约为 50)。我的问题是,倒数计时器并不总是一直到数组中的最后一个位置。有时可以,但有时它会在到达数组的最后一点之前停止。但是,如果我将间隔时间增加到 2000 毫秒,它总是有效的。它肯定会进行一些处理,这会延迟这一点,但我不希望仅仅因为我减少了间隔而倒计时不起作用。有人能告诉我我能做些什么来确保倒数计时器在通过我的整个阵列之前不会停止,或者有更好的方法来做到这一点。

我也尝试使用带有 scheduleAtFixedRate 的计时器,但我收到一条错误消息,提示我无法触摸线程中的视图,因为它们不是在线程中构造的

请帮忙 谢谢

【问题讨论】:

    标签: java android image timer runnable


    【解决方案1】:

    我确定还涉及其他细节,这可能无法解决所有问题,但对于最后一点(“...无法触摸线程中的视图...”),您需要将 Runnable 传递给 Activity。运行OnUiThread。在该 Runnable 中,设置图像资源和其他会影响屏幕的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-23
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 2013-04-24
      相关资源
      最近更新 更多