Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在AlphaAnimation运行时禁用按钮_Java_Android_Android Animation - Fatal编程技术网

Java 如何在AlphaAnimation运行时禁用按钮

Java 如何在AlphaAnimation运行时禁用按钮,java,android,android-animation,Java,Android,Android Animation,我想在动画运行时禁用“单击”按钮。 代码如下: AlphaAnimation anim = new AlphaAnimation(0.0f, 1.0f); anim.setDuration(4000); anim.setRepeatMode(Animation.REVERSE); btnTag.startAnimation(anim); 因此,在动画完成之前,我不想单击按钮。我通常会使用一个。它允许您在动画的不同阶段运行代码 此代码未经测试,但其外观应为: Al

我想在动画运行时禁用“单击”按钮。 代码如下:

    AlphaAnimation anim = new AlphaAnimation(0.0f, 1.0f);
    anim.setDuration(4000);
    anim.setRepeatMode(Animation.REVERSE);
    btnTag.startAnimation(anim);

因此,在动画完成之前,我不想单击按钮。

我通常会使用一个。它允许您在动画的不同阶段运行代码

此代码未经测试,但其外观应为:

AlphaAnimation anim = new AlphaAnimation(0.0f, 1.0f);
anim.setDuration(4000);
anim.setRepeatMode(Animation.REVERSE);
anim.setAnimationListener(new Animation.AnimationListener() {
    @Override
    public void onAnimationStart(Animation animation) {
        btnTag.setClickable(false);
    }

    @Override
    public void onAnimationEnd(Animation animation) {
        btnTag.setClickable(true);
    }

    @Override
    public void onAnimationRepeat(Animation animation) {}
});
btnTag.startAnimation(anim);

不确定btnTag是您的按钮还是按住按钮的视图,但请调用按钮的
setClickable(boolean clickable)
方法来启用和禁用按钮。

对于使用数据绑定的用户,我想分享我发现的此问题的解决方案:

    binding.ivImage.setOnClickListener {

        binding.ivImage.animate().apply {
            duration=1000
            scaleXBy(.5f)
            scaleYBy(.5f)
            rotationYBy(360f)
            translationYBy(200f)
        }.withEndAction {
            binding.ivImage.animate().apply {
                duration = 1000
                scaleXBy(-.5f)
                scaleYBy(-.5f)
                rotationXBy(360f)
                translationYBy(-200f)
            }
        }
    }

  binding.ivImage.animate().setListener(object: Animator.AnimatorListener{
        override fun onAnimationStart(p0: Animator?) {
            binding.ivImage.isClickable=false
            binding.ivImage.isEnabled=false
        }

        override fun onAnimationEnd(p0: Animator?) {
            binding.ivImage.isClickable=true
            binding.ivImage.isEnabled=true
        }

        override fun onAnimationCancel(p0: Animator?) {
            binding.ivImage.isClickable=true
            binding.ivImage.isEnabled=true
        }

        override fun onAnimationRepeat(p0: Animator?) {
            TODO("Not yet implemented")
        }

    })

setEnabled和setClickable之间有区别吗?如果希望按钮在动画结束前看起来“灰显”,请使用enabled。唯一真正的区别是禁用会删除onclick并使按钮具有禁用的外观,而clickable会删除onclick功能。