Страницы

Поиск по вопросам

вторник, 16 июля 2019 г.

Конвертирование px(из макета) в dp(приложения)

Есть макет одного экрана 1080x1920(смартфон), необходимо его перенести в xml разметку приложения Android. Есть ли формула для конвертирования (размера шрифтов, отступов, размеров view) pixels в sp или dp, для всех устройств, что бы соотношения размеров остались прежними? Использую для значений папки values, values-sw360dp, values-sw600dp, values-sw720dp. Раньше я всегда эти значения выставлял методом тестирования (то есть на глаз). Сейчас задумался, может быть их все можно посчитать?


Ответ

Для меня работают следующие формулы:
Искомое значение по горизонтали в dp = (Значение в макете по горизонтали в px * (Ширина девайса в px / Ширину макета в px)) / индекс плотности пикселей Искомое значение по вертикали в dp = (Значение в макете по вертикали в px * (Высота девайса в px / Высота макета в px)) / индекс плотности пикселей
Пример: Макет = 1080x1920 Высота искомой view внутри макета равна 100px Необходимо найти значение в dp для устройства Nexus S
Решение: Используем вторую формулу. Искомое значение = (100 * (800 / 1920)) / 1.5) = ~27.78dp

Комментариев нет:

Отправить комментарий