アプリケーションがインストールされている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'