如何为ImageView创建重复的onClick动画?

时间:2018-03-14 00:40:56

标签: java android android-studio

我下面的代码以它应该的方式为ImageView设置动画。问题是它不重复。 (表情符号是一个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 个答案:

答案 0 :(得分:1)

问题1

ImageView方法中将OnCreate()设置为INVISIBLE。

问题2

第一个动画结束后,你将其可见性设置为GONE,之后你永远不会将其设置为VISIBLE,这就是你在第一个动画之后永远看不到它的原因。因此,在emojiPopup()方法开始时,首先将其设置为VISIBLE,然后设置动画并将其隐藏。