1

我正在尝试制作一个掷骰子应用程序,并且我想运行一个活动,该活动在按下按钮时显示结果图像,并在几秒钟后将其关闭。那么我该怎么做呢?

也许还有另一种方法可以在我的活动之上显示图像而不调用新活动?我不知道。

我读过一些关于计时器的东西,但我真的不明白。而且我知道人们会告诉我让用户点击以关闭窗口,但对于这个应用程序,我确定我希望它自动消失。

4

5 回答 5

4

你可以使用这个:

 Timer t = new Timer();
 t.schedule(new TimerTask() {

        @Override
        public void run() {

                    image.setVisibility(View.GONE);
                    // If you want to call Activity then call from here for 5 seconds it automatically call and your image disappear....
        }
 }, 5000);
于 2013-09-11T11:27:43.187 回答
3
new Handler().postDelayed(new Runnable() {
                        @Override
                        public void run() {

                    image.setVisibility(View.GONE);
                        }
                }, 1500);
于 2013-09-11T11:17:29.727 回答
0

有很多方法可以做到这一点。

您可以拥有一个消失/不可见的 ImageView,稍后当您想要显示它时,您可以打开 View.Visible 的可见性。

你可以有一个计时器。检查计时器,当计时器到期时,您可以使用 ImageView 执行所需的操作。我觉得,您需要通过其他活动添加额外的重载。

于 2013-09-11T11:02:55.530 回答
0

Maybe there's another way to display an image on top of my activity without calling a new activity? I'm not sure.

我认为您也可以使用对话框来显示图像。

I want to run an activity which displays an image of the result when a button is pressed and close it after a few seconds. So how can I do this?

使用 CountDownTime示例。并在按钮单击。

  mTimer = new MyTimer(timeToDisplay, interval);
  mTimer.start()

示例代码..

 class MyTimer extends CountDownTimer {

     //constructor for timer class
    public MyTimer(long millisInFuture, long countDownInterval) {
        super(millisInFuture, countDownInterval);

    }


   // this method called when timer is finished
    @Override
    public void onFinish() {

        //close activity or dismiss dialog here 
    }

     //this method is called for every iteration of time interval
    @Override
    public void onTick(long millisUntilFinished) {


    }

}
于 2013-09-11T11:13:48.500 回答
0

单击按钮后尝试此操作,活动将在 2 秒后完成

button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                v.postDelayed(new Runnable() {

                    @Override
                    public void run() {
                        finish();

                    }
                }, 2000);

            }
        });
于 2013-09-11T12:27:23.527 回答