アプリケーションがインストールされている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'
(values-v14フォルダーを使用して)行っていることは正しいです。ビルドターゲットを変更して、コンパイルできるようにする必要があります。 (プロジェクトを右クリックし、プロパティを選択し、Androidを選択し、Android 14以上)を選択します)
以前のバージョンのAndroidで使用すると強制終了が発生するため、Android:minSdkVersionよりも大きい機能は使用しないでください。