如何使用Holo.Light主题,并在预蜂窝设备上回到“轻”?

我想在支持它的设备上使用Holo.Light主题,并在其他设备上回到常规的Light主题。

目前,引用Holo.Light在3.0+上运行良好,但是较老的API只是恢复到默认的“黑暗”主题。 我可以通过样式inheritance实现我想要的吗?

您必须创build一个自定义主题并将其保存在一些目录中,以最终将此主题设置为应用程序的默认主题

首先,在值中添加一个像这样的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目录中创build一个名为“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目录中创build一个名为“values-v14”(Android 4.0+)的目录并创build一个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你的应用程序总是看起来完美的任何公司(HTC三星…),添加创build自定义主题为Android 4

编辑:三星的界面(TouchWiz)不尊重这个function,在三星的设备上的应用程序将是非常丑陋的。 它更好地把霍洛主题:(

最后在你的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" />