AkeomeStudio

開発の忘備録、日常の雑記など

AndroidでViewの背景色をアニメーションで変える

Androidアプリ開発メモ。


Swift2.0でいうところの

UIView.animateWithDuration(1.0, delay: 0.0, options: [], animations: {
                self.view.backgroundColor = UIColor.redColor()
                }, completion: nil)
            

これ。
1秒かけてviewの背景色を赤くするやつです。



これをJavaで書くとこうなります。

int colorFrom = ((ColorDrawable)view.getBackground()).getColor();
int colorTo = Color.RED;
ValueAnimator colorAnimation = ValueAnimator.ofObject(new ArgbEvaluator(), colorFrom, colorTo);
colorAnimation.setDuration(1000);
colorAnimation.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

    @Override
    public void onAnimationUpdate(ValueAnimator animator) {
        view.setBackgroundColor((int) animator.getAnimatedValue());
    }

});
colorAnimation.start();


注意点としては
・変化前の色を指定する必要がある
・遷移時間はミリ秒で指定する
・viewはfinalで宣言される必要がある

といった感じ。


以下を参考にしました。
stackoverflow.com