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 构造函数中可以设置视图。
使用 timer
和 alpha
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);
我正在制作一个应用程序,如果用户长时间不触摸它,它会显示 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 构造函数中可以设置视图。
使用 timer
和 alpha
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);