Android ValueAnimatorで色変化をアニメーションで表現

前にも使った気がするが、忘れていたのでメモしておく ValueAnimatorは指定した色の間の差分を計算してくれるスグレモノ。 Listenerを利用して変化ごとに再設定すればOK
// ofArgbはApi21以降だけなのでofObjectを使う。Evaluatorを適切なものに設定すればいい
ValueAnimator animator = ValueAnimator.ofObject(new ArgbEvaluator(), fromColor, toColor);
animator.setDuration(200);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
    @Override
    public void onAnimationUpdate(ValueAnimator valueAnimator) {
        view.setBackgroundColor((int)valueAnimator.getAnimatedValue());
    }
});
animator.start();

コメント

タイトルとURLをコピーしました