java如何为ImageView创建重复的onClick动画?
我下面的代码按照预期的方式为ImageView设置动画。问题是它不会重复。(表情符号是一种图像视图)
当前功能:活动开始时,表情符号在屏幕上可见。当点击屏幕时,它会向上滑动,然后消失(应该如此)
问题1:我不想在活动开始时看到表情符号
问题2:onClick只工作一次。在第一次点击之后,表情符号不会再次出现
ConstraintLayout mLayout = findViewById(R.id.constraintLayout);
mLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
emojiPopup();
}
});
public void emojiPopup() {
final ImageView emojiFace = findViewById(R.id.face);
emojiFace.animate().translationY(-200).alpha(1.0f).setDuration(500).setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
emojiFace.setVisibility(GONE);
}
});
}
每次我点击屏幕时都应该出现public void onClick(View view) {emojiPopup();}
,为什么它只在第一次点击时才起作用
也许我采取了错误的方法,或者我没有看到明显的东西,有人能告诉我我做错了什么吗
# 1 楼答案
问题1
在
OnCreate()
方法中将ImageView
设置为不可见问题2
在第一个动画结束后,将其可见性设置为“已消失”,然后再也不会将其设置为“可见”,这就是为什么在第一个动画结束后永远无法看到它的原因。因此,在
emojiPopup()
方法开始时,首先将其设置为可见,然后设置动画并隐藏它