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