Проблема ширины навигационного ящика - PullRequest
0 голосов
/ 03 сентября 2018

Прежде всего, спасибо за то, что вы дали отрицательные голоса. (Я ожидаю, что по меньшей мере 10 отрицательных голосов будут честными со стороны уважаемых так называемых «экспертов» (исключая тех, кто считает, что даже самая простая и самая маленькая проблема может вызвать огромную разницу)).

Итак, перейдем к моему вопросу.

Это очень случайный вопрос: я создаю навигационный ящик с изображением заголовка 576x324 (соотношение 16: 9).

Согласно Руководству общая ширина (в dp) выдвижного ящика должна составлять

для таких устройств, как экран 720x1280px и xhdpi

ширина в dp = (720x160) / 320 - 56 (размер панели инструментов) => 304dp

высота в dp = 304 * (9/16) = 171dp

но устройство вроде google nexus 4, 768x1280px с таким же xhdpi

ширина в dp = (768x160) / 320 - 56 (размер панели инструментов) => 328dp

высота в dp = 304 * (9/16) = 184dp

Итак, для того же xhdpi я получаю две разные ширины и высоты.

Как мне справиться с этой простой ошибкой в ​​Android, чтобы сделать общий размер в файле измерения.xml?

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

Вместо расчета ширины выдвижного ящика. Что вы можете сделать, это подготовить файл dimens для экрана другого размера. Например для landscape and portrait. Для обработки разных макетов.

Сохраните ширину в dimens, и соответственно Android получит подходящий размер.

<!-- Per the design guidelines, navigation drawers should be between 240dp and 320dp:
     https://developer.android.com/design/patterns/navigation-drawer.html -->
<dimen name="navigation_drawer_width">240dp</dimen>

Для получения дополнительной информации о размерах экрана: Обработка размеров экрана

Надеюсь, это поможет.

0 голосов
/ 03 сентября 2018

Получить ширину экрана (int width = Resources.getSystem (). GetDisplayMetrics (). WidthPixels)

Выполните расчет, используя эту ширину.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...