屏幕尺寸指手机对角线长度,screenHeight和screenWidth值手机的分辨率
dpi(密度) = ppi = (√(screenHeight^2 + screenWidth^2)) / 屏幕尺寸
desity(比例) = dpi / 160
px(像素) = dp(设备无关像素) × desity
px = inch × dpi
手机高度一般会受虚拟键等的影响,但宽度是一定的,以宽度为标准,常见的适配一般分为俩种。
(一)分辨率相同,宽度不同
(二)分辨率不同,宽度相同
分辨率相同尺寸不同的设备,可以通过sw392dp-nodpi限定词适配资源
getResources().getConfiguration().smallestScreenWidthDp获取设备最小屏幕宽度,本文为392
<span style="font-size:18px;">DisplayMetrics metrics = new DisplayMetrics();
Point point = new Point();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
getWindowManager().getDefaultDisplay().getRealSize(point);
String contant = "type:" + android.os.Build.MODEL
+ "\ndpi: " + String.valueOf(metrics.densityDpi)
+ "\ndesity: " + metrics.density
+ "\nheightPixels: " + metrics.heightPixels + "\nwidthPixels: " + metrics.widthPixels
+ "\nsmallestScreenWidth: " + getResources().getConfiguration().smallestScreenWidthDp
+ "\nscreenInches:" + Math.sqrt(Math.pow(point.x / metrics.xdpi, 2) + Math
.pow(point.y / metrics.ydpi, 2));</span>
sw392dp-nodpi:不缩放,保留图片的原始大小
sw392dp-xhdpi:缩放为 自身的dpi/320
sw392dp-400dpi:缩放为 自身的dpi/400
dpi范围 | 密度 |
---|---|
0dpi ~ 120dpi | ldpi |
120dpi ~ 160dpi | mdpi |
160dpi ~ 240dpi | hdpi |
240dpi ~ 320dpi | xhdpi |
320dpi ~ 480dpi | xxhdpi |
480dpi ~ 640dpi |
xxxhdpi |