android – 限时显示按钮

android – show a button for a limited time

我正在制作一个应用程序,如果用户长时间不触摸它,它会显示 ImageButton 并逐渐消失直到消失。
我尝试了许多不同的解决方案(动画、wait() 等),但没有任何效果...
它应该像 Toast 一样工作,只显示 3 秒然后淡出(在该过程结束时,可见性应该是 GONE

您可以使用 Toast 对象,根据 Button 的外观设置其 View。作为参考,您可以看到:http://techblogon.com/custom-toast-android-example-with-source-code-description/ and http://www.javatpoint.com/android-custom-toast-example 您还可以扩展 Toast.java 并且在 public 构造函数中可以设置视图。

使用 timeralpha

long duration = 5000 // 5 seconds
long tick = 100 // 0.1 seconds;

new CountDownTimer(duration, tick) {

     public void onTick(long millisUntilFinished) {
         mImageButton.setAlpha(millisUntilFinished / (float)duration)
     }

     public void onFinish() {
         mImageButton.setVisibility(View.GONE);
         mImageButton.setAlpha(1); // incase you want to show the button again
     }
}.start();

setAlpha() - Sets the opacity of the view. This is a value from 0 to 1, where 0 means the view is completely transparent and 1 means the view is completely opaque.

也许是这样的:

yourImageButton.animate()
    .alpha(0)
    .setStartDelay(3000)
    .setDuration(1000)
    .setListener(new Animator.AnimatorListener() {


        @Override
        public void onAnimationStart(Animator animation) {

        }

        @Override
        public void onAnimationEnd(Animator animation) {
            yourImageButton.setVisibility(View.GONE);
        }

        @Override
        public void onAnimationCancel(Animator animation) {

        }

        @Override
        public void onAnimationRepeat(Animator animation) {

        }
    });

这使用 ViewPropertyAnimator 并且会在 3000 毫秒后淡出按钮。 如果动画完成,将调用 AnimationEnd() 并将 Visibility 设置为 Gone。 在您的 onClickMethod 中,您可以选择取消()动画; 请记住,如果将 Visibility 设置为 GONE,则不能简单地返回 VISIBLE 状态,必须再次实例化 ImageButton。更好地使用:

.setVisibilty(View.INVISIBLE);