代码之家  ›  专栏  ›  技术社区  ›  ham

如何设置ImageView的ImageAlpha动画

  •  3
  • ham  · 技术社区  · 11 年前

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

    但我怎样才能使这个值生动起来呢?我尝试了ValueAnimator,但没有成功。

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

    我是说Chet Haase在这里说什么 http://youtu.be/vQZFaec9NpA?t=33m

    1 回复  |  直到 11 年前
        1
  •  4
  •   Zielony    11 年前

    应该很好。也许你忘记了指定动画持续时间,或者你的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();