我有我的Java代码,我有这个布局,其中有ImageView
和Button
,在我的Drawable
文件夹中我需要图像,我想要的是:当单击按钮前进,ImageView
将显示图像(image1.png位于drawable
文件夹中),后5秒显示另一个图像(image2.png)。问题是我不知道如何暂停。
advance.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
image.setImageResource(R.drawable.image1);
//TO WAIT 5 SCONDS...
image.setImageResource(R.drawable.image2);
}
});
答案 0 :(得分:4)
使用默认的CountDownTimer http://developer.android.com/reference/android/os/CountDownTimer.html
在onFinish()
中设置新图像 new CountDownTimer(5000, 1000) { // 5000 = 5 sec
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
image.setImageResource(R.drawable.image2);
}
}.start();
修改:
额外信息:在文档中,您可以找到
CountDownTimer(long millisInFuture,long countDownInterval)
所以第一个参数是你想要的总时间(以毫秒为单位,5秒= 5000毫安),第二个参数是间隔。这是1000 = 1秒。这意味着计时器将每秒打勾。因此onTick(long)将每秒调用一次(当计时器运行时)
答案 1 :(得分:0)
advance.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
image.setImageResource(R.drawable.image1);
Timer t = new Timer();
t.schedule(new TimerTask() {
@Override
public void run() {
image.setImageResource(R.drawable.image2);
}
}, 5000);
}
});
答案 2 :(得分:0)
您也可以使用处理程序:http://developer.android.com/reference/android/os/Handler.html#postDelayed(java.lang.Runnable,长)
advance.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
image.setImageResource(R.drawable.image1);
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
@Override
public void run() {
image.setImageResource(R.drawable.image2);
}
}, 5000);
}
});