1. ホーム
  2. android

[解決済み] Androidでビューの背景色をアニメーションで変更する

2022-03-14 10:08:27

質問

Androidでビューの背景色を変更するアニメーションを作成する方法を教えてください。

例えば

背景色が赤のビューがあります。そのビューの背景色が青に変わりました。色の切り替えをスムーズに行うにはどうしたらよいでしょうか?

もし、viewsでできないのであれば、代替案を歓迎します。

どのように解決するのですか?

結局、この問題に対する(かなり良い)解決策を見つけ出しました

を使用することができます。 TransitionDrawable を使えば、これを実現することができます。たとえば、drawable フォルダにある XML ファイルに、次のように記述することができる。

<?xml version="1.0" encoding="UTF-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- The drawables used here can be solid colors, gradients, shapes, images, etc. -->
    <item android:drawable="@drawable/original_state" />
    <item android:drawable="@drawable/new_state" />
</transition>

そして、実際の View 用の XML では、この TransitionDrawable を android:background 属性で指定します。

この時点で、次のようにすれば、オンコマンドでコード内の遷移を開始することができます。

TransitionDrawable transition = (TransitionDrawable) viewObj.getBackground();
transition.startTransition(transitionTime);

または、呼び出すことでトランジションを逆に実行します。

transition.reverseTransition(transitionTime);


参照 ローマンからの回答 この回答が最初に投稿された時点では利用可能ではありませんでしたが、Property Animation API を使用した別のソリューションがあります。