Есть макет одного экрана 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
Комментариев нет:
Отправить комментарий