如何等待在android中更改不同的图像视图?

问题描述 投票:0回答:2

我正在使用此代码在不同的图像之间进行切换,但是唯一可见的图像是最后一个。 TextView“ vista_aterrizaje”在每个循环中均未显示预期值。

我试图在sleep()之前使用invalidate()方法,以尝试在for的每个不同循环中可视化它。但这不起作用。

establecerImagen()方法用于更改imageView。

for (int i = 0; i < 15; i++) {
        cur_aterrizaje = aterrizajes[rand.nextInt(aterrizajes.length)];
        vista_aterrizaje.setText(cur_aterrizaje);
        establecerImagen(cur_aterrizaje);
        vista_aterrizaje.();
        mapa.invalidate();
        try{
            Thread.sleep(50);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

我认为问题出在sleep()方法中,但我不知道如何在每次更改视图后等待几秒钟以可视化每个更改。

java android textview imageview refresh
2个回答
0
投票

尝试使用CountDownTimer。

     // here interval 1000 stands for 1sec, 
    //so onTick() will be called 15 times, each call after 1 sec interval. so you can set your own values as per your need.
        int i=0;
        long interval  = 1000;
        new CountDownTimer((15 * interval), interval){
                        @Override
                        public void onTick(long l) {
                            vista_aterrizaje.setText(i+"");
                            establecerImagen(cur_aterrizaje);
                            i++;
                        }

                        @Override
                        public void onFinish() {
                        }
                    }.start();

0
投票

sleep()的参数以毫秒为单位。因此,如果要显示每个图像1秒钟,则参数应为1000。

更好的方法是这样的:

handler=new Handler();
Runnable r=new Runnable() {
    public void run() {
        //display your image here -- it will be displayed after a 1-second delay
    }
};
handler.postDelayed(r, 1000);
© www.soinside.com 2019 - 2024. All rights reserved.