Holo.Light テーマを使用して、Honeycomb 以前のデバイスで「Light」にフォールバックするにはどうすればよいでしょうか? 質問する

Holo.Light テーマを使用して、Honeycomb 以前のデバイスで「Light」にフォールバックするにはどうすればよいでしょうか? 質問する

テーマをサポートしているデバイスではテーマを使用し、他のデバイスではHolo.Light通常のテーマにフォールバックしたいと思います。Light

現時点では、参照はHolo.Light3.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">

おすすめ記事