Как создать разные макеты для Galaxy S3 и Nexus 7?

Я создал приложение для Android, которое работает правильно для Nexus 7. Внутри папки ресурсов, я создал две папки, layout, layout-land для Nexus 7". Все работало нормально до настоящего времени. Теперь я хочу создать другой макет для Samsung Galaxy S3. Для этого я создал папки внутри ресурсов с layout-large & layout-large-land, Но здесь есть проблема. Теперь для Nexus 7 макет, определенный в layout-large папка загружается. Как это остановить? Как создать другой макет для вкладки Nexus 7"и мобильного Galaxy S3? Я прочитал документацию по поддержке нескольких экранов. Но я не мог понять, как размер экрана для Nexus 7 составляет 1204 X 800, а размер экрана для Samsung Galaxy S3 - 720 Х 1280

Как создать разные макеты для разных устройств с разными разрешениями экрана и размерами экрана? Кроме того, исходя из размера устройства, я хочу изменить несколько значений в моем приложении. Как это сделать?

4 ответа

Решение

В соответствии с поддержкой нескольких экранов

Отборочные как small, normal, large а также xlarge для Screen SizesЭто означает, что Nexus 7 будет использовать ресурсы с large квалификатор, если вы предоставите. Поэтому, прежде чем создавать папку с large квалификатор, Nexus 7 загрузит ресурсы из папки макета по умолчанию. Что касается ldpi, mdpi, hdpi а также xhdpi для плотности экрана.

Чтобы решить вашу проблему, вам необходимо:

  1. поместите определения макетов для Galaxy S3 в макет и layout-sw600dp для Nexus 7. Пожалуйста, обратитесь к блогу разработчиков Android: подготовка вашего приложения для Jelly Bean и Nexus 7

  2. поместите ресурсы (изображения или материалы для рисования) для Galaxy S3 в drawable-xhdpi и drawable-tvdpi или drawable-hdpi для Nexus 7.

Надеюсь, что это поможет вам, и, пожалуйста, дайте мне знать, если у вас есть другие проблемы:)

Вот несколько полезных ссылок:

Какая раскладка подходит для устройств Android 720x1280?

Спецификатор ширины экрана

Вам нужен один для xlarge и xlarge-land, а также

Или вы можете сделать это программно, позвонив:

Display displayparm= activity.getWindowManager().getDefaultDisplay();
int width= displayparm.getWidth();
int Height= displayparm.getHeight();

и выбирая макет из этой информации

Вы можете создать макет, добавив новую папку в папку res как layout-xlarge и layout-xlarge-large, и вам также нужно обновить файл манифеста Android, чтобы поддерживать более высокое разрешение.

Я разработал приложение, в котором я поддерживаю несколько устройств с разным разрешением и плотностью. с Nexus 7 и Galaxy S3 также один из них. galaxy s3 и nexus 7, очевидно, возьмут из папки большого экрана, если в вашем проекте есть папка с макетом большого размера. Но galaxy s3 подпадает под категорию больших HDDP, а Nexus7 подпадает под категорию больших TVDI. так что это будет очень полезно, если у вас есть layout-large-hdpi и layout-large-tvdpi для s3 и nexus 7 соответственно.

Другие вопросы по тегам