[解決済み] 参照である場合にプログラムで色の値を取得する (テーマ)
2022-04-23 17:42:52
質問
考えてみてください。
styles.xml
<style name="BlueTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="theme_color">@color/theme_color_blue</item>
</style>
attrs.xml
<attr name="theme_color" format="reference" />
カラー.xml
<color name="theme_color_blue">#ff0071d3</color>
そこで
テーマカラー
はテーマから参照されています。theme_color (参照) をプログラムで取得するにはどうしたらよいでしょうか?通常であれば、私は
getResources().getColor()
が、今回は参照されているのでダメです!
どのように解決するのですか?
これで大丈夫です。
TypedValue typedValue = new TypedValue();
Theme theme = context.getTheme();
theme.resolveAttribute(R.attr.theme_color, typedValue, true);
@ColorInt int color = typedValue.data;
また、このコードを呼び出す前に、必ずテーマをActivityに適用してください。 どちらかを使ってください。
android:theme="@style/Theme.BlueTheme"
をマニフェストまたはコールで呼び出す前に)。
setContentView(int)
):
setTheme(R.style.Theme_BlueTheme)
で
onCreate()
.
あなたの値でテストしたところ、完全に動作しました。
関連
-
adb シェルがデバイスのオフラインを求めるプロンプトを表示する
-
Android.mk:7: *** セパレータがありません。
-
[android studio]com.android.ide.common.process.ProcessException: aaptの実行に失敗しました
-
AndroidエミュレーターのADBサーバーがACKしない問題
-
AndroidがMainActivityが包含クラスでないというエラーを報告する
-
RuntimeException: アクティビティを開始できません ComponentInfo solution
-
android exception - aapt.exe has stopped working.
-
超シンプルなアンドロイドのタイムディレイ機能
-
[解決済み] Androidの新しいActionBarをサポートするTheme.AppCompat.Lightが見つからない
-
[解決済み】カラーリソースからcolor-intを取得する方法は?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
AAPT2エラーについて:詳しくはログをご確認ください。
-
Android端末にADBが接続できない!を解決。理由: デバイスが認証されていない!
-
gitlab 設定エラー。リモートリポジトリから読み込めなかったか、ホストキーの検証に失敗しました。
-
プログラム "git.exe "を実行できない場合の正しい解決方法です。CreateProcessエラー=2
-
cygwinのダウンロード、インストールチュートリアル、およびCDTの「makeプログラムがパスに見つからない」バグの解消
-
Android studioのインストールと問題発生、Emulator: PANIC: AVDのシステムパスが見つかりません。
-
Android Nで報告されたエラーを解決する: android.os.FileUriExposedException: file:///storage/emulated/0/
-
Android ProgressBarのスタイルカラーを変更する
-
Android Bluetooth 開発の基本プロセス
-
Android.support.v7.widget.Toolbar が見つかりませんでした。