Как использовать тему Holo.Light и вернуться к «Свету» на устройствах с предварительной сотой?

Я хотел бы использовать тему Holo.Light на устройствах, которые ее поддерживают, и вернуться к обычной теме Light на других устройствах.

На данный момент ссылка на Holo.Light отлично работает на 3.0+, но более старые API просто возвращаются к теме «темного» по умолчанию. Могу ли я получить то, что хочу, с наследованием стиля?

Solutions Collecting From Web of "Как использовать тему Holo.Light и вернуться к «Свету» на устройствах с предварительной сотой?"

Вы должны создать собственную тему и сохранить ее в некоторых каталогах, чтобы окончательно установить эту тему как стандартную для приложения

Во-первых, в значениях добавить theme.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> 

Затем создайте каталог с именем «values-v11» (Android 3.0+) в каталоге res и поместите theme.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> 

Наконец, создайте каталог с именем «values-v14» (Android 4.0+) в каталоге res и создайте theme.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 Samsung …), которые добавляют созданные пользовательские темы для Android 4

EDIT: интерфейс 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" />