Как поддерживать обратную совместимость при использовании Android API уровня 15?

Сэндвич с мороженым представил множество новых элементов дизайна пользовательского интерфейса, но проникновение на рынок все еще составляет всего 4%. Если бы кто-то захотел в будущем доказать свое применение и использовать некоторые элементы дизайна, введенные с помощью сотового сэндвича Honeycomb/Ice Cream, например, панель действий, цветовая схема и т.д., Что было бы лучшим способом гарантировать, что вы поддерживаете некоторый недостаток назад совместимость?

Ответ 1

В то время как я согласен с @Ollie C, я думаю, что есть другие варианты, которые можно добавить, кроме как только используя библиотеку Sherlock Actionbar, заявив об этом, я активно участвую в сообществе ABS и соглашаюсь, что это fantasmagoricly действительно полезно и содержит все активы пользовательского интерфейса, вероятно, потребуется.

Вы можете смотреть на изящное ухудшение компонентов пользовательского интерфейса обратно через уровни API. Так, например:

Вы можете создать в папке values и установить стиль следующим образом

<?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> 

Затем для устройств Android 3.0+ создайте папку values-v11:

<?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>

А для устройств с 4.0 + создайте values-v14:

<?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>

REF: http://android-developers.blogspot.co.uk/2012/01/holo-everywhere.html, Как использовать тему Holo.Light и отступить к "Свету" на устройствах сотовой связи?

Существует также этот проект: https://github.com/ChristopheVersieux/HoloEverywhere, что он пытается принести голографическую тему.

Наконец; Google поощряет разработчиков включать компоненты пользовательского интерфейса из SDK, чтобы помочь с проблемой обратной совместимости, а не ссылаться на них непосредственно из ОС Android. Хотя это не ваш вопрос, это помогает обеспечить некоторую согласованность.

Ответ 2

Это очень, очень широкая тема. Ответы различаются в зависимости от того, какой конкретный элемент вы пытаетесь использовать.

- для ActionBar: если вы хотите использовать ActionBar в более ранних версиях, ActionBarSherlock - это популярная бесплатная библиотека, распространяемая с Android поддержка библиотеки.

- Для цветовой схемы/темы: как описано в этом потоке SO, создайте res/values ​​/styles.xml и res/values-v11/styles. xml (например, называется "myStyle" ), для каждого стиля выберите соответствующего родителя. Для V11 это, вероятно, будет "Theme.Holo", а для другого, вероятно, "Theme.Dark". Добавьте любые настройки, которые вы хотите использовать для тем. Обратите внимание, что пользовательская тема в вашем манифестах и ​​правильный выбор будут выбраны в зависимости от версии платформы устройства (папка значений-v11 будет использоваться для сотовых и вверх, другая для пряников и ниже).

- Для других функций платформы вы можете инкапсулировать функциональные возможности платформы в отдельных классах и обращаться к ним на основе значения Build.VERSION.SDK, как описано в блог разработчиков Android.

Ответ 3

http://www.actionbarsherlock.com

Эта (бесплатная) библиотека великолепна и обеспечивает то, что вы ищете на предыдущих версиях Android.