使用以下代码想实现:当点击一个按钮后要显示一个图像,两秒后这个图像又变得不可见。button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
firstImage.setVisibility(ImageView.VISIBLE);
// delay of some sort
firstImage.setVisibility(ImageView.INVISIBLE);
}
}但是运行代码后,点击按钮,图像一直是不可见的。我是不是该用另一种方法来实现这个功能呢?使用handlers还是不对,还有什么方法呢?
3 回答
呼啦一阵风
TA贡献1802条经验 获得超6个赞
恩,你可以使用Handler的postDelayed方法来实现,且这种做法是线程安全的。
给你个例子:
private final Handler mHandler = new Handler();
private final Runnable runnable = new Runnable()
{
@Override
public void run()
{
firstImage.setVisibility(View.INVISIBLE);
}
};
// displayTime就是你要设置控件显示的时间,单位为毫秒
public void showView(long displayTime)
{
mHandler.removeCallbacks(runnable);
firstImage.setVisibility(View.VISIBLE);
mHandler.postDelayed(runnable, displayTime);
}
炎炎设计
TA贡献1808条经验 获得超4个赞
不要让你的UI线程休眠
final Handler handler = new Handler();
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
firstImage.setVisibility(ImageView.VISIBLE);
handler.postDelayed(new Runnable(){
public void run(){
firstImage.setVisibility(ImageView.INVISIBLE);
}
}, DELAY);
}
}这里你应该设置DELAY为 2000 (ms)。
添加回答
举报
0/150
提交
取消
