在运行时更改图像

时间:2011-04-19 06:18:44

标签: android android-layout

我现在可以在按OnTouch时更改图像,例如我按下image1使其不可见并显示我下面的图像...

现在我想在运行时更改图像,基本上我有一个数组,如果array [i] = 5;那么我想让image5看不见?

我怎么能这样做?我用

尝试了
try{
     Thread.sleep(2000);
     }
catch
  {
  }

它会使屏幕变黑,然后在2秒后显示背景,但我从未看到图像变得不可见;

我希望能够做到这样的事情

for(int i=0;i < array.length; i++)
{
 if(array[i] == 1)
     {
          try
          {
         Thread.sleep(1000);
         ImageView image = (ImageView)findById(myImage01);
         image.setVisibility(View.INVISIBLE);      
         Thread.sleep(1000);
         image.setVisibility(View.VISIBLE);  

           }  
         catch(InterruptedException e) 
            {
            }
       }

}

你明白了......如果我这样做,它会使屏幕变黑然后返回主布局而什么都不做:(

提前谢谢

顺便说一下,我是Android新手(请考虑:()

2 个答案:

答案 0 :(得分:2)

让我们看看我是否理解正确。您试图通过转动放置在其上方的图像来显示图像,这是不可见的吗?

似乎更简单的方法是更改​​实际图像视图的图像,使其变得不可见。

image.setImageResource(R.drawable.<image>)

您更改为res / drawable-hdpi / mdpi / ldpi文件夹中放置的图像名称。

答案 1 :(得分:1)

Thread.sleep()是一个坏主意,因为它会停止线程。因此,如果它是UI线程,则无法再刷新屏幕。这可能就是你观察到的。使用像

这样的东西
new Handler().postDelayed(new Runnable() { 
  void run() {
      image.setVisibility(View.VISIBLE);
  }
}, 1000);