Разные макеты для разных размеров экрана на Android?
Итак, я сделал приложение, используя в Eclipse, используя графический редактор, AbsoluteLayout
, фиксированные значения пикселей и т. д. просто плохая практика в целом. По умолчанию это 3.7in screen
, Есть ли способ design
separate layout
для каждого размера экрана и программа выбирает, какой загружать на основе указанного размера экрана?
3 ответа
Я исправил это, запустив этот код при запуске
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
Оттуда я делаю оператор if, чтобы проверить разрешение и загрузить конкретный макет, созданный для этого разрешения. EX. Экран WVGA 800x480, поэтому я проверяю это и загружаю макет.
if (width == 480 && height == 800)
{
setContentView(R.layout.main);
}
Это было для API < 13, теперь эти функции устарели, см. Это Получить размеры экрана в пикселях
Предоставление разных макетов для разных размеров экрана. По умолчанию Android изменяет макет приложения в соответствии с текущим экраном устройства. В большинстве случаев это работает нормально. В других случаях ваш пользовательский интерфейс может выглядеть не так хорошо, и может потребоваться настройка для разных размеров экрана. Например, на большом экране вам может потребоваться настроить положение и размер некоторых элементов, чтобы воспользоваться дополнительным пространством экрана, или на меньшем экране вам может потребоваться настроить размеры так, чтобы все могло уместиться на экране.
Квалификаторы конфигурации, которые вы можете использовать для предоставления ресурсов определенного размера, это small, normal, large и xlarge. Например, макеты для очень большого экрана должны идти в layout-xlarge/.
Начиная с Android 3.2 (уровень API 13), вышеперечисленные группы размеров устарели, и вместо этого следует использовать спецификатор конфигурации swdp, чтобы определить наименьшую доступную ширину, требуемую ресурсами макета. Например, если для макета планшета с несколькими панелями требуется ширина экрана не менее 600dp, поместите его в layout-sw600dp /. Использование новых методов объявления ресурсов макета обсуждается далее в разделе "Объявление макетов планшета для Android 3.2".
С сайта разработчика Android - просто используйте layout-small/ layout-xlarge/ etc.. folder:=) лучший способ когда-либо..
Вместо этого просто создайте разные папки в папке res, "layout-small" для маленьких экранов, "layout-large" для больших экранов, "layout-xlarge" для сверхбольших экранов. Разработайте макеты соответственно. Нажмите здесь для получения дополнительной информации.