私はアンドロイドアプリケーションを開発しています。ユーザーが実行時にアプリケーションのテーマを変更できるようにする機能を追加したいと考えています。
私は主な活動で次のステートメントを使用しようとしています。
setTheme(android.R.style.Theme_Black);
ただし、ダイアログを黒い背景に白いテキストに変更するだけです。
アクションバーとフラグメントを含むすべてのコンポーネントのテーマを黒に変更するにはどうすればよいですか?
私はアンドロイドアプリケーションを開発しています。ユーザーが実行時にアプリケーションのテーマを変更できるようにする機能を追加したいと考えています。
私は主な活動で次のステートメントを使用しようとしています。
setTheme(android.R.style.Theme_Black);
ただし、ダイアログを黒い背景に白いテキストに変更するだけです。
アクションバーとフラグメントを含むすべてのコンポーネントのテーマを黒に変更するにはどうすればよいですか?
開発者向けドキュメントの「スタイルとテーマ」セクションを読むことをお勧めしますhttp://developer.android.com/guide/topics/ui/themes.html
次のようなものを使用して、マニフェストから多くのテーマを作成できます。
<activity android:theme="@style/android:Theme.Dark">
グローバルなランタイムの変更の場合、アプリケーションを拡張してテーマを設定することでうまくいく可能性があります (おそらく、onCreate()
このクラスにsetTheme()
はContextWrapper
.
マニフェストで Application クラスを宣言してください。
<application
android:name="com.yourpackage.ApplicationClass" >
</application>
ただし、アプリケーションの拡張は通常嫌われてActivity
いるため、アクティビティはオブジェクトよりも頻繁に破棄および再作成されるため、テーマごとに設定することをお勧めしApplication
ます。から現在のテーマを返す静的メソッドを作成するかもしれませんSharedPreferences
。
すべてを黒くしたい場合は、独自のテーマを作成する必要があることに注意してTheme_Holo
ください。Theme_Black