28

アプリケーションがインストールされているSDKのバージョンに応じて異なるテーマを使用する方法はありますか?

私が尋ねる理由は、SDKバージョン8までずっとサポートしたいからですが、ICSを使用しているユーザーのために、ICSの設計標準に従い、Holoテーマを使用できるようにしたいと考えています。

プログラムから、Androidのさまざまなバージョンのさまざまなレイアウトから、テーマ宣言をオーバーライドするtheme.xmlを持つフォルダー値-v14を持つことができることがわかります。ただし、Theme.Holoを参照するとコンパイルされません。これは、AndroidManifest.xmlに次のものがあるためだと思います

<uses-sdk android:minSdkVersion="8" />
<uses-sdk android:targetSdkVersion="11"/>

任意のポインタをいただければ幸いです。

更新:-OK、これが私のファイルです:-AndroidManifest.xml:

<application
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:name=".Refunder"
    android:theme="@style/MainTheme"
    >

res / values / themes.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MainTheme" parent="@android:style/Theme.Light.NoTitleBar">
        <item name="android:typeface">normal</item>
        <item name="android:textSize">15sp</item>
    </style>
</resources>

res / values-v11 / themes.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MainTheme" parent="@android:style/Theme.Holo">
        <item name="android:typeface">normal</item>
        <item name="android:textSize">15sp</item>
    </style>
</resources>

これは私がここで読んだ記事と一致しています:-http://android-developers.blogspot.com/2012/01/holo-everywhere.html

これを行うと、Eclipseで次のようなコンパイルエラーが発生します。-

error: Error retrieving parent for item: No resource found that matches the given name '@android:style/Theme.Holo'
4

1 に答える 1

17

(values-v14フォルダーを使用して)実行していることは正しいです。ビルドターゲットを変更して、コンパイルできるようにする必要があります。(プロジェクトを右クリックし、プロパティを選択し、Androidを選択し、Android 14以降を選択します)

以前のバージョンのAndroidで使用すると強制終了が発生するため、android:minSdkVersionよりも大きい機能は使用しないでください。

于 2012-02-07T08:00:09.333 に答える