2012-04-10 2 views
10

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

ответ

10

В то время как я согласен с @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, How to use Holo.Light theme, and fall back to 'Light' on pre-honeycomb devices?

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

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

+0

Для дизайна материалов я бы добавил: https://developer.android.com/training/material/theme.html –

1

http://www.actionbarsherlock.com

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

3

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

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

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

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