1

次を取得しようとしています。

ImageView x は y 秒間表示されます。次に、x は再び非表示になり、別の ImageView (z) が y 秒間表示されます。等々..

私が持っている :

        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();                     

    }
}

それは最初の色で機能します..しかし、同時に2番目の色も表示します. 最初の色が非表示になったとき (x 秒後)、2 番目の色を表示する必要があります。

タイ

4

1 に答える 1

0

Handler以下の例のようなものを使用してみてください。

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必要な数の画像に対して呼び出しを繰り返します。

お役に立てれば!

于 2015-01-14T09:45:52.630 に答える