【问题标题】:Changing an Image resource更改图像资源
【发布时间】:2018-11-01 10:09:25
【问题描述】:

当我单击按钮时,我想将图像视图更改为不同的图片,等待 3 秒,然后再次将其更改为另一张图片(无需再次单击)。

1点击->换图->等待3秒->换图。

这是我的代码:

northLight.setImageResource(R.drawable.red_and_yellow);

try {
     TimeUnit.MILLISECONDS.sleep(3000);
} catch (InterruptedException e) {}

northLight.setImageResource(R.drawable.green);

在我运行程序时,当我实际单击按钮时,程序会忽略第一个 setImage 并将其直接更改为第二个 setImage(变为绿色)。

我该如何解决这个问题?

【问题讨论】:

  • 使用处理程序。

标签: android android-layout android-imageview


【解决方案1】:

你可以使用处理程序,

northLight.setImageResource(R.drawable.red_and_yellow);
new Handler().postDelayed(new Runnable() {
public void run() {
 // Actions to do after 3 seconds
         northLight.setImageResource(R.drawable.green);
}
}, 3000);

【讨论】:

    【解决方案2】:

    您可以尝试使用 Handler 来等待和更改图像。当您的按钮被点击时,更改您的图像并延迟 3 秒运行处理程序。

    //Call this method when your button is clicked
    public void changeImage() {
        northLight.setImageResource(R.drawable.red_and_yellow);
    
        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                northLight.setImageResource(R.drawable.green);
            }
        }, 3000);
    }
    

    【讨论】:

      【解决方案3】:

      试试这个代码

      new CountDownTimer(3000,1000){
        @Override
        public void onTick(long l) {
          northLight.setImageResource(R.drawable.red_and_yellow);
        }
        @Override
        public void onFinish() {
          northLight.setImageResource(R.drawable.green);
        }
      }.start();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-27
        • 2023-03-19
        • 1970-01-01
        • 2013-06-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多