Разные макеты для разных размеров экрана на Android? - PullRequest
8 голосов
/ 27 июня 2011

Итак, я сделал приложение, использующее в Eclipse, используя графический редактор, AbsoluteLayout, фиксированные значения пикселей и т. Д. - просто плохая практика в целом. По умолчанию это 3.7in screen. Есть ли какой-нибудь способ design a separate layout для каждого размера экрана и программа выбирает, какой из них загружать в зависимости от указанного размера экрана?

Ответы [ 3 ]

10 голосов
/ 24 июля 2011

Предоставление разных макетов для разных размеров экрана По умолчанию Android изменяет макет приложения в соответствии с текущим экраном устройства. В большинстве случаев это работает нормально. В других случаях ваш пользовательский интерфейс может выглядеть не так хорошо, и могут потребоваться корректировки для разных размеров экрана. Например, на большом экране вам может потребоваться настроить положение и размер некоторых элементов, чтобы воспользоваться дополнительным пространством экрана, или на меньшем экране вам может потребоваться настроить размеры так, чтобы все могло уместиться на экране.
Квалификаторы конфигурации, которые вы можете использовать для предоставления ресурсов определенного размера: small, normal, large и xlarge. Например, макеты для очень большого экрана должны идти в layout-xlarge /.

Начиная с Android 3.2 (уровень API 13), вышеперечисленные группы размеров устарели, и вместо этого следует использовать спецификатор конфигурации sw dp, чтобы определить наименьшую доступную ширину, требуемую ресурсами макета. Например, если для макета планшета с несколькими панелями требуется ширина экрана не менее 600 dp, поместите его в layout-sw600dp / . Использование новых методов объявления ресурсов макетов обсуждается далее в разделе, посвященном объявлению макетов планшетов для Android 3.2.

С сайта Android для разработчиков - просто используйте layout-small / layout-xlarge / etc .. folder: =) лучший способ когда-либо ..

9 голосов
/ 27 июня 2011

Я исправил это, запустив этот код при запуске

    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, теперь эти функции устарели, см. Это <a href="/990320/poluchit-razmery-ekrana-v-pikselyah"> Получить размеры экрана в пикселях

0 голосов
/ 19 апреля 2014

Вместо этого просто создайте разные папки в папке res, «layout-small» для маленьких экранов, «layout-small» для больших экранов, «layout-xlarge» для сверхбольших экранов.Разработайте макеты соответствующим образом. Нажмите здесь для получения дополнительной информации ..

...