使用以下代碼想實現:當點擊一個按鈕後要顯示一個圖像,兩秒後這個圖像又變得不可見。
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
firstImage.setVisibility(ImageView.VISIBLE);
// delay of some sort
firstImage.setVisibility(ImageView.INVISIBLE);
}
}
但是運行代碼後,點擊按鈕,圖像一直是不可見的。我是不是該用另一種方法來實現這個功能呢?使用handlers還是不對,還有什麼方法呢?
恩,你可以使用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);
}