は、私は、デバイスAとデバイスBを持っては、実行時にプログラムでスタイル/テーマを選択する
アプリがデバイスAまたはデバイスB上で実行されている場合、私は簡単に検出することができ 今、私は必要なものに使用することですデバイスAのテーマ(スタイル)とデバイスBのその他のテーマ(スタイル)。
どうすればいいですか?
は、私は、デバイスAとデバイスBを持っては、実行時にプログラムでスタイル/テーマを選択する
アプリがデバイスAまたはデバイスB上で実行されている場合、私は簡単に検出することができ 今、私は必要なものに使用することですデバイスAのテーマ(スタイル)とデバイスBのその他のテーマ(スタイル)。
どうすればいいですか?
Activity.onCreate()では、setTheme()を呼び出して、使用するテーマを設定できます。 の前にのsetContentView()を呼び出すか、そうでなければUIを作成する必要があります。
ユーザーがあなたのアプリを起動すると、システムはそれが起こっている間、そのプレビューを表示することに注意してください。これは、マニフェストで宣言されたテーマに一致するウィンドウを作成することに基づいています。 onCreate()で設定するテーマに可能な限り近づけて、できるだけスムーズにアプリに移行させたいと考えています。
プラットフォームのバージョンや画面サイズなどのデバイス構成に応じてテーマを変えたい場合は、リソース全体を通してこの操作を行うことができます。必要な設定ごとにテーマの異なるバージョンを宣言するだけです。
values/
styles.xml # Required default theme
values-v11/
styles.xml # Theme when running on Android 3.0 or higher
values-xlarge/
styles.xml # Theme when running on an xlarge screen
-v11は、古いバージョンの互換性のあるものに戻すながら、新しいプラットフォーム上で動作しているときに新しいテーマを使用して、テーマのバージョンを持つことができます:ファイルレイアウトは次のようなものになるだろう。たとえば、values-v11スタイルでは、テーマの親は新しい@android:style/Theme.Holoになりますが、基本的なものは古い@android:style/Themeから継承されます。 http://developer.android.com/reference/android/app/Activity.html#recreate()
それを呼び出した後、活動の新しいインスタンスが作成されますよう:
はまた、アンドロイド3.0は、あなたの活動は、構成変更が発生したときのように再起動されていることを尋ねることによって、あなたの実行時に、あなたのテーマを変更する方法を提供します以前に使用されていたテーマとは異なる値(例えば、保存されたインスタンス状態の情報や共有された環境設定に基づいて)でsetTheme()を呼び出すことができます。
明るいテーマと暗いテーマの両方が利用可能な場合、どのようにテーマにほぼ一致するようにプレビュー画面を設定できますか?たとえば、windowBackgroundとして黒を使用するテーマと白を使用するテーマがある場合、プレビュー画面を動的にスタイルする方法はありますか? –