布局的最小宽度如何与此示例一起使用?

时间:2016-09-12 08:53:49

标签: android android-layout

我已阅读了官方文件,但仍然不理解!

我正在玩Android并尝试使用最小宽度的布局,这对我没有任何意义。

我创建了这些布局:sw-300dp/350dp/360dp/400dp/450dp/500dp/ 但我的Galaxy S7使用sw-360dp layout。但360dp远不是getDisplayMetrics();证明的任何数字或我从GSMArena获得的屏幕数量。那么为什么Galaxy 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

1 个答案:

答案 0 :(得分:0)

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);
}