Назначьте значение px для макета на всех устройствах Android
Я разрабатываю макет в соответствии с набором спецификаций. Мне в основном нужно дать некоторое пространство между макетом и устройством Android. Ниже изображение для справки
Я использую следующий сайт для преобразования данного пикселя в значения dp AndroidPixelConverter
Я даю значение px в столбце xxxhdpi и получаю соответствующее значение dp, которое я помещаю в свой макет xml.
Основные телефоны, на которых я тестирую это Samsung S4 и Nexus5
Ниже приведены мои вопросы:
- Согласно этому сайту, Nexus5 и Samsung S4 принадлежат к разрешению xxhdpi, но все же я получаю правильное значение пикселя, если использую столбец xxxhdpi на вышеупомянутом сайте AndroidPixel Converter. Почему это?
- Nexus5 имеет мягкую навигационную панель, в которой Samsung S4 имеет жесткую кнопку навигации. Как я могу обнаружить это и, соответственно, дать значения для моего макета. Панель навигации, если я не ошибаюсь, имеет высоту 144 пикселя, если ее нет, изменит размер макетов. Как я могу справиться с этим?
И наконец, правильный ли метод, которым я следую? Если нет, пожалуйста, направьте в правильном направлении.
PS: я ищу идеальное расположение пикселей на всех устройствах. Является ли это возможным?
1 ответ
Вам нужно поговорить с вашим дизайнером и пойти по-другому. Вы НИКОГДА не хотите указывать макет в px как этот. Он не будет масштабироваться - пиксель может быть любого размера. Вернитесь к нему и получите вместо этого номер дп (дп в основном 1/160 дюйма). Дизайн все это в дп. Тогда пусть телефон сам переведет его в px.
Если вы разрабатываете в пикселях, это не будет работать. Проектируйте в физических размерах (dp), и пусть устройство переводит.
Кроме того, вы не можете принять высоту панели навигации. Он может отличаться между устройствами как с точки зрения dp, так и px.