Что на самом деле представляет собой HeightPixels / Density?
Я смотрю на настройку FontSize
моего приложения в зависимости от размера моего устройства. т.е. если устройство ниже 8", сделайте шрифт меньше, чем по умолчанию.
Таким образом, устройство, которое я использую, представляет собой Lenovo S8-50 8-Inch Tablet, и, как вы можете видеть в спецификациях Screen Size: 8 inches
Итак, глядя на некоторый код на Github, я вижу следующее:
var d = Resources.System.DisplayMetrics;
this.ScreenHeight = (int)(d.HeightPixels / d.Density);
Для этого устройства возвращается номер 912
и я не могу понять, как этот номер относится к устройству.
Итак, мой вопрос: что на самом деле представляет это число?
1 ответ
Из официальной документации:
Плотно-независимый пиксель (dp) Виртуальный пиксельный модуль, который следует использовать при определении макета пользовательского интерфейса, чтобы выразить размеры или положение макета независимым от плотности способом. Плотно-независимый пиксель эквивалентен одному физическому пикселю на экране с разрешением 160 точек на дюйм, который является базовой плотностью, принятой системой для экрана "средней" плотности. Во время выполнения система прозрачно обрабатывает любое масштабирование единиц измерения dp по мере необходимости на основе фактической плотности используемого экрана. Преобразование единиц dp в пиксели экрана очень просто: px = dp * (dpi / 160). Например, на экране с разрешением 240 dpi 1 dp равен 1,5 физических пикселей. Вы должны всегда использовать dp-единицы при определении пользовательского интерфейса вашего приложения, чтобы обеспечить правильное отображение вашего пользовательского интерфейса на экранах с различной плотностью.
Это также будет полезно: