Путаница в разрешении, аспектах экрана в Android

Я задаю этот вопрос после долгих чтений. Я всегда слышал, что dpi для принтеров, но когда дело доходит до экрана, они также говорят о dpi. Они имеют в виду ppi?

Теперь, что на самом деле является разрешением, для меня это количество пикселей, которое может отображать каждое измерение, например, 800x600 означает 800 пикселей по ширине и 600 пикселей по высоте, но в некоторых местах я вижу, что они обозначают разрешение как dpi.,

Я пытаюсь понять эту концепцию хорошо, потому что это очень важно в Android, как в этой статье,

Например, допустим, что иконка имеет размер 0,5x0,5 при визуализации на экране. Затем, изображение должно быть создано с наибольшей поддерживаемой плотностью или как масштабируемая векторная графика. Рекомендуется поддерживать максимальную плотность, которая в настоящее время составляет xxhdpi при 480 dpi. При разрешении 480 точек на дюйм изображение 0,5x0,5 преобразуется в разрешение 240x240 пикселей.

Так что на самом деле это относится к dpi как к ppi, если я понимаю?

До сих пор я понял, что разные пиксели могут отображать разное количество пикселей. Вот почему мы не используем пиксели в качестве единицы измерения. Вместо этого мы используем dp, где dp - один пиксель на устройстве с разрешением 160 точек на дюйм (опять же путаница с dpi и ppi)

Может ли кто-то устранить эту большую путаницу или направить меня к статье, которая может очистить

2 ответа

Мате, разрешение 800 X 600 подразумевает, что экран имеет 480 000 точек пикселей, которые будут использоваться для визуализации экрана (это часто путают с размерами дисплея). DPI или PPI означает количество точек / точек на дюйм, это мера плотности экрана.

Так что, учитывая только разрешение, нельзя определить фактическую длину дисплея, если параметр плотности также не доступен. Таким образом, разрешение 800 X 600 имеет 480 000 точек пикселей, а пусть это устройство имеет плотность 480 точек на дюйм.

Так что ширина экрана

= Нет точек пикселей по ширине / плотности

= 800/480

= 1,67 дюйма

Так же,

Высота = 600/480 =1,25 дюйма

и если устройство с разрешением 800X600 имеет плотность 160 точек на дюйм, его размеры будут сильно различаться. Следующие расчеты рассчитывают высоту / ширину 800X600 на 160 точек на дюйм. Сравните эти два значения с расчетами выше 480 dpi.

Ширина экрана = Нет точек пикселей по его ширине / Плотность

= 800/160

= 5,0 дюйма

Так же,

Высота = 600/160 =3,75 дюйма

Это та самая причина, по которой масштабирование изображений для оптимального размещения на экране является такой сложной проблемой во фрагментированной среде Android. Однако я люблю Android!

Надеюсь это поможет! и любой, у кого есть что добавить / удалить. изменить этот ответ, приветствуется.

  1. точек на дюйм (точек на дюйм) == пикселей на дюйм (пикселей на дюйм)
  2. Вы также говорите о DisplayMetrics.density, который дает вам множитель для dp единица измерения.
  3. Есть также DisplayMetrics.scaledDensity что также учитывает размер текста, выбранный пользователем.

Проще говоря, dp Устройство предназначено, чтобы дать вам некоторую безопасность о размере ваших объектов на экране. 160dp должен представлять один дюйм на любом экране. Чтобы достичь этого, вы должны умножить свое измерение на DisplayMetrics.density или же DisplayMetrics.scaledDensity,

То есть, если вы делаете это в коде. За Layouts, вы можете просто ввести ViewРазмеры в dp и Android Framework позаботится об этом за вас.

Другие вопросы по тегам