Android でビューの背景色の変化をアニメーション化するにはどうすればよいですか?
例えば:
背景色が赤いビューがあります。ビューの背景色が青に変わります。色をスムーズに切り替えするにはどうすればよいですか?
ビューでこれが実行できない場合は、代替手段が歓迎されます。
ベストアンサー1
新しいプロパティアニメーション APIカラーアニメーションの場合:
int colorFrom = getResources().getColor(R.color.red);
int colorTo = getResources().getColor(R.color.blue);
ValueAnimator colorAnimation = ValueAnimator.ofObject(new ArgbEvaluator(), colorFrom, colorTo);
colorAnimation.setDuration(250); // milliseconds
colorAnimation.addUpdateListener(new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animator) {
textView.setBackgroundColor((int) animator.getAnimatedValue());
}
});
colorAnimation.start();
Android 2.xとの下位互換性を保つには9つの古いアンドロイドのライブラリジェイク・ウォートンより。
このgetColor
メソッドは Android M では非推奨になったため、次の 2 つの選択肢があります。
サポート ライブラリを使用する場合は、
getColor
呼び出しを次のように置き換える必要があります。ContextCompat.getColor(this, R.color.red);
サポート ライブラリを使用しない場合は、
getColor
呼び出しを次のように置き換える必要があります。getColor(R.color.red);