Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.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
Java 连续y秒显示x个图像视图_Java_Android_Multithreading_Imageview_Visibility - Fatal编程技术网

Java 连续y秒显示x个图像视图

Java 连续y秒显示x个图像视图,java,android,multithreading,imageview,visibility,Java,Android,Multithreading,Imageview,Visibility,试图得到以下结果 图像视图x显示y秒。然后,x再次不可见,并在y秒内显示不同的ImageView z。等等 我有: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.series_onthouden); hideAllImages(); showImage(3, 2000);

试图得到以下结果

图像视图x显示y秒。然后,x再次不可见,并在y秒内显示不同的ImageView z。等等

我有:

        protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.series_onthouden);
    hideAllImages();
    showImage(3, 2000);
    showImage(4, 1000);
}

public void showImage(int color, final int sec) {

    Thread thread = new Thread() {
        @Override
        public void run() {
            try {
                Thread.sleep(sec);
            } catch (InterruptedException e) {
            }

            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    for (int i = 0; i < myImagebtns.length; i++) {
                        ((ImageView) findViewById(myImagebtns[i]))
                                .setVisibility(View.INVISIBLE);
                    }
                }
            });
        }
    };
    if (!thread.isAlive()){
        ((ImageView) findViewById(myImagebtns[color])).setVisibility(View.VISIBLE);
        thread.start();                     

    }
}
它适用于第一种颜色。。但同时也表现出第二种。当x秒后第一种颜色变为不可见时,应显示第二种颜色

ty

您可以尝试使用如下示例所示的处理程序:

Handler handler = new Handler();
im1.setVisibility(View.VISIBLE);
handler.postDelayed(new Runnable() {
    @Override
    public void run() {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                im1.setVisibility(View.INVISIBLE);
                im2.setVisibility(View.VISIBLE);
            }
        });

    }
},500);
其中500是事件之间的延迟

根据需要对尽可能多的图像重复postDelayed调用

希望这有帮助