繁体   English   中英

为什么1dp在Android上同时表示3px和2px?

[英]Why does 1dp mean 3px and 2px at the same time on Android?

我对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>

并且在Pixel 2模拟器上显示3px用于填充,2px用于间隔。 如果我隐式地指定2px用于填充和间距,那么它将显示2px-因此在任何地方都没有多余的像素。

它发生在水平和垂直两个方向。 对于填充1dp始终表示3px。 对于间距1dp始终表示2px。

为什么1dp在Android上同时表示3px和2px? 那我怎么得到实际值呢? 因为我需要了解他们。

附言:我知道很难相信所陈述的事实,因此我可以提供屏幕截图作为证明。

dp表示与密度无关的像素。 每个智能手机都有一个不同的数字,大约300dp-420dpi(如果我不记得不好的话)。 无论如何,您的智能手机的屏幕应该为1920x1080。 这是因为1dp可能同时为2-3px。

您可以在Android开发者官方网站上阅读更多内容。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM