page.title=Обеспечение совместимости @jd:body
Некоторые возможности Material Design, такие как "материальные" темы и настраиваемые переходы между операциями, доступны только в Android 5.0 (уровень API 21) и более поздних версиях. Однако приложения можно разработать таким образом, чтобы эти функции были доступны при запуске на устройствах, поддерживающих Material Design, сохранив при этом совместимость приложений с устройствами под управлением более ранних выпусков Android.
Приложение можно настроить так, чтобы тема Material Design использовалась при работе на поддерживающих эту технологию устройствах, а при запуске приложения на устройствах с более ранними версиями Android происходило переключение на старые варианты тем. Ниже описан порядок такой настройки.
res/values/styles.xml определите тему, наследующую более старой теме (например, Holo).res/values-v21/styles.xml определите тему с таким же именем, наследующую теме Material Design.Примечание. Если в приложении используется тема Material Design, но отсутствует определенная описанным способом альтернативная тема, это приложение не будет запускаться на устройствах под управлением версий Android, предшествующих 5.0.
Если в создаваемых согласно рекомендациям Material Design макетах отсутствуют новые атрибуты XML, представленные в Android 5.0 (уровень API 21), такие макеты поддерживаются в предыдущих версиях ОС Android. В противном случае необходимо предоставить альтернативные макеты. Можно также предоставить альтернативные макеты для настройки внешнего вида приложения в более ранних версиях Android.
Создайте файлы макета для Android 5.0 (уровень API 21) в res/layout-v21/,
а также файлы альтернативного макета для более ранних версий Android (в res/layout/).
Например, res/layout/my_activity.xml — это альтернативный макет для
res/layout-v21/my_activity.xml.
Чтобы сделать код более компактным, определите стили в res/values/, измените
стили в res/values-v21/ для новых API, а также используйте наследование стилей,
определив основные стили в res/values/ и задав наследование из них в res/values-v21/.
Вспомогательные библиотеки v7 r21 и более поздних версий включают следующие функции Material Design:
Theme.AppCompat;Theme.AppCompat;В темах Theme.AppCompat имеются стили Material Design для следующих виджетов:
Чтобы получить стили Material Design и настроить цветовую палитру с помощью вспомогательной библиотеки
Android v7, примените одну из следующих тем Theme.AppCompat:
<!-- extend one of the Theme.AppCompat themes -->
<style name="Theme.MyTheme" parent="Theme.AppCompat.Light">
<!-- customize the color palette -->
<item name="colorPrimary">@color/material_blue_500</item>
<item name="colorPrimaryDark">@color/material_blue_700</item>
<item name="colorAccent">@color/material_green_A200</item>
</style>
Виджеты {@link android.support.v7.widget.RecyclerView} и {@link android.support.v7.widget.CardView} имеются в более ранних версиях Android. Они находятся во вспомогательной библиотеке Android v7, и для них существуют следующие ограничения.
Чтобы воспользоваться этими возможностями в версиях Android, предшествующих 5.0 (уровень API 21), включите в свой проект вспомогательную библиотеку Android v7 как зависимость Gradle:
dependencies {
compile 'com.android.support:appcompat-v7:21.0.+'
compile 'com.android.support:cardview-v7:21.0.+'
compile 'com.android.support:recyclerview-v7:21.0.+'
}
Следующие функции доступны только в Android 5.0 (уровень API 21) и более поздних версиях:
Чтобы обеспечить совместимость приложения с более ранними версиями Android, проверьте системный параметр {@link android.os.Build.VERSION#SDK_INT version} во время запуска, прежде чем вызвать API любой из этих функций:
// Check if we're running on Android 5.0 or higher
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// Call some material design APIs here
} else {
// Implement this feature without material design
}
Примечание. Чтобы указать версии Android, поддерживаемые вашим приложением,
установите атрибуты android:minSdkVersion и android:targetSdkVersion
в файле манифеста. Чтобы использовать функции Material Design, которые имеются в Android 5.0, задайте
для атрибута android:targetSdkVersion значение 21. Дополнительные сведения см.
в руководстве по API
<uses-sdk>.