我正在开发一个Android应用程序,我希望在一段时间后隐藏我的图像视图。我正在使用此代码,但它没有隐藏。任何人都可以告诉我如何隐藏它???
showtrue1.setBackgroundResource(R.drawable.ticktrue);
showtrue1.setVisibility(View.VISIBLE);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
showtrue1.setVisibility(View.GONE);
答案 0 :(得分:4)
new CountDownTimer(1000, 100) {
public void onTick(long millisUntilFinished) {
// implement whatever you want for every tick
}
public void onFinish() {
showtrue1.setVisibility(View.GONE);
}
}.start();
答案 1 :(得分:1)
您也可以使用异步任务来解决您的问题。在它的背景函数中,让一个线程在特定的时间内休眠,并且在post方法中,使你的图像可见性变得清晰。
在oncreate中调用execute方法 new MyAsyncTask()。execute();
并制作如下定义的内部类:
private class MyAsyncTask extends AsyncTask<Void, Void, Void>{
@Override
protected void onPreExecute(){
// show your progress dialog
showtrue1.setBackgroundResource(R.drawable.ticktrue);
showtrue1.setVisibility(View.VISIBLE);
}
@Override
protected Void doInBackground(Void... voids){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void params)
{
showtrue1.setVisibility(View.GONE);
}
}
答案 2 :(得分:0)
创建一个休眠1秒的单独线程,然后调用runOnUiThread来隐藏视图。
Thread thread = new Thread() {
@Override
public void run() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
runOnUiThread(new Runnable() {
@Override
public void run() {
// Do some stuff
showtrue1.setVisibility(View.GONE);
}
});
}
};