如何在一些间隔后隐藏imageview

时间:2013-10-24 05:13:12

标签: android imageview

我正在开发一个Android应用程序,我希望在一段时间后隐藏我的图像视图。我正在使用此代码,但它没有隐藏。任何人都可以告诉我如何隐藏它???

showtrue1.setBackgroundResource(R.drawable.ticktrue);
showtrue1.setVisibility(View.VISIBLE);

try {
    Thread.sleep(1000);
} catch (InterruptedException e) {
    e.printStackTrace();
}

showtrue1.setVisibility(View.GONE);

3 个答案:

答案 0 :(得分:4)

尝试CountDownTimer

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);
            }
        });
    }
};