77

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

現時点では、参照Holo.Lightは 3.0 以降で正常に機能しますが、古い API はデフォルトの「ダーク」テーマに戻るだけです。スタイルの継承で目的を達成できますか?

4

2 に答える 2

182

カスタム テーマを作成していくつかのディレクトリに保存し、最終的にこのテーマをアプリのデフォルトのテーマとして設定する必要があります

まず、次のように値に 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 のデバイスではアプリが非常に醜いものになります。ホロのテーマを入れたほうがいいです:(

最後に manifest.xml に

 <application
        ...
        android:theme="@style/MyAppTheme">
于 2012-03-13T09:53:21.323 に答える
0

次のように、背景を白に設定してから、他のすべてのウィジェットを黒にすることもできます。

<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" />
于 2012-08-05T00:39:52.350 に答える