Преобразование dp в px и px в dp.Концептуальное недоразумение. - PullRequest
0 голосов
/ 06 июня 2018

Я немного запутался в отношении преобразования dp в px и px в dp.Формула работает следующим образом:

px = dp * (dpi / 160)

Рассмотрим два экрана A и B плотностью 160 точек на дюйм и 320 точек на дюйм соответственно.Это само по себе означает, что в одной и той же области B имеется большее количество пикселей, чем у A, что означает, что размер пикселя экрана 160 точек на дюйм должен быть больше для того же размера экрана и должен быть равен физическому размеру 2 пикселей экрана 320 точек на дюйм.Но если вставить формулу для B, это даст 1 пиксель для B, эквивалентный физическому размеру 2 независимых от плотности пикселей или 2 пикселей экрана с разрешением 160 точек на дюйм.Что мне здесь не хватает?

1 Ответ

0 голосов
/ 06 июня 2018

Попробуйте понять систему масштабирования на этом примере.Представьте, что у вас есть растровое изображение, которое вы хотите отобразить на каждом экране 48dp x 48dp big (независимо от плотности).У нас есть:

  • mDPI, экран 160 точек на дюйм (соотношение 1x ) -> растровое изображение: 48x48 px (старые устройства)
  • hDPIЭкран с разрешением 240 точек на дюйм (соотношение 1,5x ) -> растровое изображение: 72x72 пикселей (48 x 1,5)
  • xhDPI, экран с разрешением 320 точек на дюйм (соотношение 2x ) -> растровое изображение: 96x96 px (48 x 2)
  • xxhDPI, экран с разрешением 480 точек на дюйм (соотношение 3x ) -> растровое изображение: 144x144 px(48 x 3)
  • xxxhDPI, экран 640 точек на дюйм (соотношение 4x ) -> растровое изображение: 192x192 px (48 x 4)

В двух словах, чтобы ответить на ваш вопрос, у вас есть разное количество пикселей для разных плотностей, но такое же количество dps .

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