【问题标题】:How to animate ImageAlpha of ImageView如何为 ImageView 的 ImageAlpha 设置动画
【发布时间】:2015-01-27 12:25:40
【问题描述】:

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

但是我怎样才能为这个值设置动画呢?我试过 ValueAnimator 没有成功。

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

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

【问题讨论】:

  • view.animate().alpha()?
  • @PedroOliveira: view.animate().alpha() 在这里特别不受欢迎,因为遇到了与链接视频中讨论的相同的性能命中。 setImageAlpha 采用不同的路径来避免这些性能损失。

标签: android animation imageview alpha


【解决方案1】:

应该没问题。也许您忘记指定动画持续时间,或者您的 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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 2016-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多