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

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

Итак, потому что я буду использовать полностью различные макеты для планшетов / смартфонов, Я бы начал с "экрана загрузки", который проверяет какая Android-версия используется, и если используется планшет или смартфон-устройство, например, в макете для планшета, на некоторых экранах будут кнопки, которых не будет на смартфоне.

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

  • общие
  • 2.3
    • планшет
    • смартфон
  • 3.2
    • планшет
    • смартфон
  • 4.0
    • планшет
    • смартфон

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

Это разделение хорошо, по вашему мнению, или это полный перегруз?

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

2 ответов


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

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


вы можете узнать версию Android, глядя на Build.ВЕРСИЯ.

в документации рекомендуется проверить сборку.ВЕРСИЯ.SDK_INT против значений в Build.VERSION_CODES.

и на основе этой версии вы можете установить свои макеты в if else conditions