Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在运行时更改图像_Android_Android Layout - Fatal编程技术网

Android 在运行时更改图像

Android 在运行时更改图像,android,android-layout,Android,Android Layout,我现在可以在按OnTouch时更改图像,例如,我按image1使其不可见并显示其下方的图像 现在我想在运行时更改一个映像,基本上我有一个数组,如果array[i]=5;那么我想让image5不可见 我怎么能做到这一点呢?我试了一下 try{ Thread.sleep(2000); } catch { } 它会使屏幕变黑,然后在2秒钟后显示背景,但我从来没有看到图像变得不可见 我希望能够做这样的事情 for(int i=0;i < array.length; i

我现在可以在按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) 
            {
            }
       }
for(int i=0;i
}

你明白了。。。现在,如果我这样做,它将使屏幕变黑,然后返回主布局,而不执行任何操作:(

先谢谢你


我在Android中是新手(请考虑:())

让我看看我是否正确地理解了这一点。你试图通过打开一个图像来显示一个图像,图像放在上面,看不见?

似乎更简单的方法是更改实际图像的图像视图,您的视图将变为不可见

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

在此处,您可以更改为放置在res/drawable hdpi/mdpi/ldpi文件夹中的图像的名称。

让我看看我是否正确理解了这一点。您试图通过将放置在图像上方的图像变为不可见来显示图像吗

似乎更简单的方法是更改实际图像的图像视图,您的视图将变为不可见

image.setImageResource(R.drawable.<image>)
image.setImageResource(R.drawable.)
您可以在其中更改放置在res/drawable hdpi/mdpi/ldpi文件夹中的图像名称。

Thread.sleep()是一个坏主意,因为它会停止线程。因此,如果是UI线程,它将无法再刷新屏幕。这可能是您观察到的情况。使用类似于

new Handler().postDelayed(new Runnable() { 
  void run() {
      image.setVisibility(View.VISIBLE);
  }
}, 1000);
Thread.sleep()是一个坏主意,因为它会停止线程。因此,如果它是UI线程,它将无法再刷新屏幕。这可能是您观察到的情况。请使用

new Handler().postDelayed(new Runnable() { 
  void run() {
      image.setVisibility(View.VISIBLE);
  }
}, 1000);

这听起来不错,但是当使用Thread.sleep时屏幕会变黑吗?:(我猜它会变黑,因为UI线程处于睡眠状态。这听起来不错,但是当使用Thread.sleep时屏幕会变黑吗?:(我猜是因为UI线程处于睡眠状态,所以它会变黑。如果在myView类中,我将在何处实现此功能?您可以创建一个方法
switchImage
,用于切换图像可见性或更改图像。然后在处理程序的
run
方法中调用
switchImage
。您还可以调用Handler.postDela你可以创建一个方法
switchImage
,用于切换图像可见性或更改图像。然后你可以在处理程序的
run
方法中调用
switchImage
。你还可以在那里再次调用Handler.postdayed。