[解決済み] 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 を使用した別のソリューションがあります。
関連
-
[解決済み] スピナーの文字サイズと文字色を変更するには?
-
例外「指定された子にはすでに親がいます」の解決方法。removeViewを呼び出す必要があります" の解決方法(ソースコード付き例)
-
Android Studioのgitの使用とgitの設定パス
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] グリッドレイアウトにおけるフリングジェスチャーの検出
-
[解決済み] 1つの要素に複数のCSS遷移を持たせるには?
-
[解決済み】なぜHTMLは "chucknorris "を色と見なすのか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
-
[解決済み】ActionBarActivityのActionBarの背景色をXMLで変更する方法を教えてください。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
adb シェルがデバイスのオフラインを求めるプロンプトを表示する
-
AndroidでAttempt to invoke virtual method... on null object referenceの例外が発生する。
-
デフォルトのアクティビティが見つからない場合の対処法
-
ジャークとして。起動アクティビティを特定できませんでした。デフォルトのアクティビティが見つかりません アクティビティ起動中のエラー
-
アンドロイドプロジェクトのパッケージングにgradleを使用する際の問題点
-
Android studioのインストールと問題発生、Emulator: PANIC: AVDのシステムパスが見つかりません。
-
Android TextViewにandroid:ellipsize=endのバグがある。
-
view.getRootView()の本当の意味とテストについて
-
Androidのカラーグラデーション実装のまとめ
-
アンドロイドスタジオソフトウェア使用詳細説明書