Android 适配

屏幕尺寸指手机对角线长度,screenHeight和screenWidth值手机的分辨率

dpi(密度) = ppi = (√(screenHeight^2 + screenWidth^2)) / 屏幕尺寸

desity(比例) = dpi / 160

px(像素) = dp(设备无关像素) × desity

px = inch × dpi


手机高度一般会受虚拟键等的影响,但宽度是一定的,以宽度为标准,常见的适配一般分为俩种。

(一)分辨率相同,宽度不同


(二)分辨率不同,宽度相同






分辨率相同尺寸不同的设备,可以通过sw392dp-nodpi限定词适配资源

getResources().getConfiguration().smallestScreenWidthDp获取设备最小屏幕宽度,本文为392

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

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

你可能感兴趣的:(android,Android)