我想Holo.Light
在支持该主题的设备上使用该主题,然后又回到Light
其他设备上的常规主题。
目前,引用Holo.Light
可以在3.0+上正常运行,但是较旧的API只需还原为默认的“深色”主题即可。我可以通过样式继承实现我想要的吗?
Answers:
您必须创建一个自定义主题并将其保存在某些目录中,才能最终将此主题设置为应用程序的默认主题
首先,在值中添加如下所示的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 ...)的任何设备中都始终看起来完美。
编辑:三星的界面(TouchWiz)不尊重此功能,并且应用程序在三星的设备上将非常难看。它最好放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" />