[英]How do smallest width for layouts work with this example?
我已经阅读了officel文档,但仍然不理解!
我正在玩Android上最小宽度的布局并在进行实验,这对我没有任何意义。
我已经创建了以下布局: sw-300dp/350dp/360dp/400dp/450dp/500dp/
但是我的Galaxy S7使用sw-360dp layout
。 但是360dp
远没有getDisplayMetrics();
证明的任何数字getDisplayMetrics();
或我从GSMArena获得的屏幕编号。 那么,为什么银河S7使用360dp
,而不是500dp
因为xdpi是580dp,更贴近500dp?
测试电话:三星Galaxy S7
屏幕尺寸: 5.1英寸
分辨率: 1440x 2560(577 ppi)
从det Logcat,我检索了电话的以下屏幕值:
getDisplayMetrics().densityDpi: 640
getDisplayMetrics().xdpi: 580
getDisplayMetrics().ydpi: 575:
getDisplayMetrics().widthPixels: 1440
S7上的屏幕密度为4.0
这意味着每dp有4个像素,因此屏幕为1440/4 = 360dp宽。
我经常使用以下方法:
public static int dpToPx(int dp) {
return (int) (dp * Resources.getSystem().getDisplayMetrics().density);
}
public static int pxToDp(int px) {
return (int) (px / Resources.getSystem().getDisplayMetrics().density);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.