适配

2021-09-09  本文已影响0人  a7687d04ea64

                                                    

屏幕适配:

像素: px 

像素密度: dpi(px/inch)

屏幕密度: 像素密度/160

在像素密度为 160dpi 时, 1dp=1px ,因此,像素密度为320dpi,即屏幕密度为2时,1dp=2px

三星Note8-N9500:

屏幕宽度(像素):1440

屏幕高度(像素):2792

屏幕密度(0.75 / 1.0 / 1.5):3.5

像素密度dpi(120 / 160 / 240):560

屏幕宽度(dp):411

屏幕高度(dp):797

华为 GRA-TL00:

屏幕宽度(像素):1080

屏幕高度(像素):1794

屏幕密度(0.75 / 1.0 / 1.5):3.0

像素密度dpi(120 / 160 / 240):480

屏幕宽度(dp):360

屏幕高度(dp):598

手机品牌: Pandora

手机型号: A1

SDK版本: 23

系统版本: 6.0.1

屏幕宽度(像素): 1334px

屏幕高度(像素): 750px

屏幕宽度(DP): 667.0dp

屏幕高度(DP): 375.0dp

屏幕密度(0.75 / 1.0 / 1.5): 2.0

像素密度DPI(120 / 160 / 240): 320

适配:

mipmap-ldpi 120dpi 0.75

mipmap-mdpi 160dpi 1

mipmap-hdpi 240dpi 1.5

mipmap-xhdpi 320dpi 2

mipmap-xxhdpi 480dpi 3

mipmap-xxxhdpi 640dpi 4

在资源文件中,实际显示宽高计算: (图片像素/资源文件dpi)*手机dpi

例如: 一张高为550px的图片放在资源文件夹mipmap-xxhdpi中,则屏幕密度为560dpi的手机中显示的高度为 (550/480)*560 = 642px

获取屏幕参数:

private void getDisplay() {

        DisplayMetrics metric = new DisplayMetrics();

        getWindowManager().getDefaultDisplay().getRealMetrics(metric);

        // 屏幕宽度(像素)

        int width = metric.widthPixels;

        // 屏幕高度(像素)

        int height = metric.heightPixels;

        // 屏幕密度(1.0 / 1.5 / 2.0)

        float density = metric.density;

        // 屏幕密度DPI(160 / 240 / 320)

        int densityDpi = metric.densityDpi;

        String info = "手机" +

                "\n手机品牌:\t\t\t\t\t\t" + android.os.Build.BRAND +

                "\n手机型号:\t\t\t\t\t\t" + android.os.Build.MODEL +

                "\nSDK版本:\t\t\t\t\t\t" + Build.VERSION.SDK_INT +

                "\n系统版本:\t\t\t\t\t\t" + android.os.Build.VERSION.RELEASE +

                "\n屏幕宽度(像素):\t\t\t\t\t" + width +

                "\n屏幕高度(像素):\t\t\t\t\t" + height +

                "\n屏幕宽度(DP):\t\t\t\t\t" + width / density + "dp" +

                "\n屏幕高度(DP):\t\t\t\t\t" + height / density + "dp" +

                "\n屏幕密度(0.75 / 1.0 / 1.5):\t\t" + density +

                "\n屏幕密度DPI(120 / 160 / 240):\t" + densityDpi +

                "\n10dp = " + getResources().getDimension(R.dimen.dp_10) + "px" + " = " + getResources().getDimension(R.dimen.dp_10) / density + "dp" +

                "\n20dp = " + getResources().getDimension(R.dimen.dp_20) + "px" + " = " + getResources().getDimension(R.dimen.dp_20) / density + "dp" +

                "\n100dp = " + getResources().getDimension(R.dimen.dp_100) + "px" + " = " + getResources().getDimension(R.dimen.dp_100) / density + "dp";

        Log.d("System INFO", info);

    }

上一篇 下一篇

猜你喜欢

热点阅读