有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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. # 1 楼答案

    问题1

    OnCreate()方法中将ImageView设置为不可见

    问题2

    在第一个动画结束后,将其可见性设置为“已消失”,然后再也不会将其设置为“可见”,这就是为什么在第一个动画结束后永远无法看到它的原因。因此,在emojiPopup()方法开始时,首先将其设置为可见,然后设置动画并隐藏它