如何为 ImageView 的 ImageAlpha 设置动画

How to animate ImageAlpha of ImageView

自 API16 起应使用 ImageView.setImageAlpha(int) 而不是 View.setAlpha(float) 以获得更好的性能。

但是我怎样才能使该值具有动画效果呢?我尝试了 ValueAnimator 没有成功。

ObjectAnimator.ofInt(imageView, "imageAlpha", 0).start();

我的意思是 Chet Haase 在这里所说的 http://youtu.be/vQZFaec9NpA?t=33m

应该没问题。也许您忘记指定动画持续时间,或者您的 alpha 值错误(负数、太小、太接近以至于无法注意到)?

您始终可以使用自定义侦听器制作动画。它更长,但更容易调试:

ValueAnimator animator = ValueAnimator.ofInt(0,255);
animator.setDuration(300);
animator.setInterpolator(new DecelerateInterpolator());
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
    @Override
    public void onAnimationUpdate(ValueAnimator valueAnimator) {
        imageView.setImageAlpha(valueAnimator.getAnimatedValue());
    }
});
animator.start();