我正在制作一个显示ImageButton
的应用,如果用户没有长时间触摸它,它会消失直至消失。
我尝试了许多不同的解决方案(动画,wait()
等),但没有做我尝试过的事情。
它应该像Toast
一样工作,只显示3秒然后淡出(在流程结束时,可见性应为GONE
。
答案 0 :(得分:1)
使用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() - 设置视图的不透明度。这是一个从0到1的值,其中0表示视图完全透明,1表示视图完全不透明。
答案 1 :(得分:0)
您可以使用Toast对象,根据Button的外观设置其View。作为参考,您可以看到:http://techblogon.com/custom-toast-android-example-with-source-code-description/和http://www.javatpoint.com/android-custom-toast-example 您还可以扩展Toast.java并在公共构造函数中设置视图。
答案 2 :(得分:0)
也许是这样的:
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并在3000ms后淡出Button。 如果动画结束,将调用AnimationEnd()并将Visibility设置为Gone。 在你的onClickMethod中你可以选择取消()动画; 请记住,如果将Visibility设置为GONE,则无法再回到VISIBLE状态,您必须再次实例化ImageButton。更好用:
.setVisibilty(View.INVISIBLE);