0

我正在开发一个 android 应用程序,我想在一段时间后隐藏我的图像视图。我正在使用此代码,但它没有隐藏。谁能告诉我如何隐藏它???

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

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

showtrue1.setVisibility(View.GONE);
4

3 回答 3

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();
于 2013-10-24T05:16:55.900 回答
1

您也可以使用异步任务来解决您的问题。在它的背景函数中,让线程休眠特定的秒数,在 post 方法中,使图像视图的可见性消失。

在 oncreate new MyAsyncTask().execute(); 中调用 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);

       }

    }
于 2013-10-24T05:57:39.890 回答
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);
            }
        });
    }
};
于 2013-10-24T05:25:26.207 回答