2015-01-27 5 views
1

더 나은 성능을 위해 API16 ImageView.setImageAlpha (int)를 View.setAlpha (float) 대신 사용해야합니다.ImageView의 ImageAlpha에 애니메이션을 적용하는 방법

하지만 어떻게 그 값을 움직일 수 있습니까? 나는 성공하지 않고 ValueAnimator를 시도했다.

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

나는 쳇 하세 그것은 괜찮을 것 여기에 대해 http://youtu.be/vQZFaec9NpA?t=33m

+0

'view.animate(). alpha()'? –

+0

@PedroOliveira : 'view.animate(). alpha()'는 특별히 여기에서 원하지 않습니다. 링크 된 비디오에서 언급 된 것과 동일한 성능 적중률로 실행되기 때문입니다. setImageAlpha는 이러한 성능 적중을 피하는 다른 경로를 사용합니다. –

답변

2

을 말하고 무엇을 의미한다. 어쩌면 애니메이션 시간을 지정하는 것을 잊었거나 알파 값이 잘못되었습니다 (음수, 너무 작음,주의가 너무 가까움)?

언제든지 사용자 지정 수신기를 사용하여 애니메이션을 적용 할 수 있습니다. 더 길지만 디버깅하기가 더 쉽습니다.

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(); 
+0

고마워요! 이것은 의도 한대로 작동합니다 :) – ham

관련 문제