Программирование различных макетов для разных версий в Android

Мне нужно запрограммировать приложение для Android с лучшей совместимостью с различными размерами экрана (планшеты и смартфоны) и версиями 2.3, 3.2 и 4.0. Я знаю о возможности указать папки макета, например res / layout-sw600dp /. Чтобы соответствовать макету точно для разных размеров экрана.

Поэтому я буду использовать совершенно разные макеты для планшетов / смартфонов , я бы начал с «экрана загрузки», который проверяет, какая версия Android используется, и если используется устройство планшета или смартфона, например, в Макета для планшета, на некоторых экранах будут кнопки, которых на смартфоне не будет.

Поэтому мне придется отделить все это в пакетах, например:

  • общий
  • 2,3
    • таблетка
    • смартфон
  • 3,2
    • таблетка
    • смартфон
  • 4,0
    • таблетка
    • смартфон

Я бы выбрал это разделение, потому что, на мой взгляд, это лучший способ быть готовым к предстоящим * обновлениям *, если, скажем, в ToolBar в Android 4.0 должна быть добавлена ​​кнопка.

По вашему мнению, это разделение – это полная перегрузка?

Есть ли в 4.0 новые функции, о которых я должен знать?

Solutions Collecting From Web of "Программирование различных макетов для разных версий в Android"

Вы также можете назвать свои папки ресурсов для указания номера версии (например, /res/layout-v11 ) или ( /res/values-v13 )

Что касается вашего вопроса о разделении – это действительно зависит от ваших конкретных требований. Общим подходом к этой проблеме является механизм отказа: вы предоставляете несколько конкретных макетов (например, макет xlarge landscape v11) и несколько общих, на которые нужно вернуться.

Конечно, это «идеалистическое» решение; И это не всегда так. Другими словами, очень сложно практически реализовать приложение, совместимое со многими версиями Android, исключительно путем предоставления альтернативных ресурсов. Даже если вы используете библиотеки совместимости (что немного помогает сократить код версии); Вам все равно придется адаптировать свой код на основе версии во время выполнения.

Вы можете узнать версию Android, смотрящую на Build.VERSION.

В документации рекомендуется проверить Build.VERSION.SDK_INT на значения в Build.VERSION_CODES.

И на основе этой версии вы можете установить свои макеты, если в остальных условиях