我有一个图像视图。所以在图像视图中我想在一段时间后更改图像。图像来自数组列表。现在当图像的数量是3或大于3时,它是完美的。但是当它是2时,我的逻辑不起作用。第二张图片暂时可见,然后再次更改为第一张图片,这是我的代码:
r = new Runnable(){
int i = 0;
public void run(){
iv.setImageBitmap(alBmps.get(i));
i++;
if(i >= alBmps.size()){
i = 0;
}
iv.postDelayed(r, 5000); //set to go off again in 5 seconds.
}
};
iv.postDelayed(r, 1000);
任何人都可以帮助我对上述代码进行哪些更改吗?
感谢。
答案 0 :(得分:0)
试试这个
声明变量
static int i=0;
private Timer myTimer;
在onCreate或on按钮上单击要调用的位置并启动方法
myTimer = new Timer();
myTimer.schedule(new TimerTask()
{
@Override
public void run()
{
TimerMethod();
}
}, 500, 5000);
将这些方法添加到您的班级
private void TimerMethod()
{
this.runOnUiThread(Timer_Tick);
}
private Runnable Timer_Tick = new Runnable()
{
public void run()
{
if(i<alBmps.size())
{
iv.setImageBitmap(alBmps.get(i));
}
else
{
i=0;
iv.setImageBitmap(alBmps.get(i));
}
i++;
}
};