それをサポートするデバイスではHolo.Light
テーマを使用し、他のデバイスでは通常のLight
テーマにフォールバックしたいと思います。
現時点では、Holo.Light
の参照は3.0以降で正常に機能しますが、古いAPIは単にデフォルトの「ダーク」テーマに戻ります。スタイルの継承で目的を達成できますか?
このテーマをアプリのデフォルトテーマとして最終的に設定するには、カスタムテーマを作成していくつかのディレクトリに保存する必要があります
まず、値に次のように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">
また、背景を白に設定し、次のように他のすべてのウィジェットを黒にすることもできます。
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
**Android:background="#ffffff"
Android:orientation="vertical" >
<TextView
Android:id="@+id/tvText"
Android:text="@string/text"
**Android:textColor="#000000"
Android:textSize="12dp" />