Почему 1dp означает 3px и 2px одновременно на Android? - PullRequest
0 голосов
/ 08 сентября 2018

Я использую следующий стиль для GridView:

<style name="CaldroidDefaultGridView">
    <item name="android:adjustViewBounds">true</item>
    <item name="android:gravity">center_horizontal</item>
    <item name="android:listSelector">@null</item>
    <item name="android:background">@color/caldroid_lighter_gray</item>
    <item name="android:horizontalSpacing">1dp</item>
    <item name="android:padding">1dp</item>
    <item name="android:verticalSpacing">1dp</item>

И он показывает 3px для отступа и 2px для интервала на эмуляторе Pixel 2. Если я неявно указываю 2px как для отступа, так и для интервала, то он показывает 2px, поэтому нигде больше нет пикселя.

Это происходит в обоих направлениях - горизонтальном и вертикальном. Для отступа 1dp всегда означает 3px. Для интервала 1dp всегда означает 2px.

Почему 1dp означает 3px и 2px одновременно на Android? Как я могу получить фактические значения тогда? Потому что мне нужно их знать.

P.S. Я понимаю, что в изложенные факты трудно поверить, поэтому я могу предоставить скриншоты в качестве доказательства.

1 Ответ

0 голосов
/ 08 сентября 2018

dp означает независимые от плотности пиксели.У каждого смартфона свой номер, который составляет около 300dp - 420dpi, если я не плохо помню.В любом случае, ваш смартфон должен иметь разрешение 1920х1080.Это потому, что 1dp может составлять 2-3 пикселя одновременно.

Вы можете узнать больше на официальном сайте разработчика Android.

https://developer.android.com/training/multiscreen/screendensities

...