テーマをサポートしているデバイスではテーマを使用し、他のデバイスではHolo.Light
通常のテーマにフォールバックしたいと思います。Light
現時点では、参照はHolo.Light
3.0 以降では正常に機能しますが、古い API は単にデフォルトの「ダーク」テーマに戻ります。スタイル継承を使用して、必要なことを実現できますか?
ベストアンサー1
このテーマをアプリのデフォルトテーマとして設定するには、カスタムテーマを作成していくつかのディレクトリに保存する必要があります。
まず、値に次のような themes.xml を追加します。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyAppTheme" parent="@android:style/Theme.Light.NoTitleBar">
<!-- Any customizations for your app running on pre-3.0 devices here -->
</style>
</resources>
次に、resディレクトリに「values-v11」(Android 3.0+)という名前のディレクトリを作成し、次のようなthemes.xmlを配置します。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyAppTheme" parent="@android:style/Theme.Holo.Light">
<!-- Any customizations for your app running on 3.0+ devices here -->
</style>
</resources>
最後に、resディレクトリに「values-v14」(Android 4.0以降)という名前のディレクトリを作成し、themes.xmlを作成します。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyAppTheme" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar">
<!-- Any customizations for your app running on 4.0+ devices here -->
</style>
</resources>
DeviceDefaultを使用すると、Android 4用に作成されたカスタムテーマを追加するあらゆる会社のあらゆるデバイス(HTC Samsung ...)でアプリが常に完璧に表示されます。
編集: Samsung のインターフェース (TouchWiz) はこの機能を尊重していないため、Samsung のデバイスではアプリが非常に醜くなります。Holo テーマを採用したほうがよいでしょう :(
最後にmanifest.xmlで
<application
...
android:theme="@style/MyAppTheme">