Android 屏幕适配之如何确定设备的res dpi

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Michael_hejing/article/details/82025811

目的

不同设备系统识别的res-dpi文件夹不同,如果我们在放入资源文件如图片位置错误,则会导致屏幕适配困难,故我们需要先识别目标设备系统识别的资源文件夹是哪一个,所以有以下信息获取函数。

目标设备res-dpi信息获取方法:

   /**
     * 一般情况下的普通屏幕密度:ldpi是120,mdpi是160,hdpi是240,xhdpi是320,xxhdpi是480,xxxhdpi是560。
     * 屏幕信息详情{@link android.util.DisplayMetrics}
     */
    private String getResourcesDpiMsg(Context context) {
        String msg;
        int densityDpi = context.getResources().getDisplayMetrics().densityDpi;
        switch (densityDpi) {
            case DisplayMetrics.DENSITY_XXXHIGH:
                msg = "屏幕密度:" + "560像素/英寸  \n资源文件夹:xxxhdpi \n分辨率倍数:4";
                break;
            case DisplayMetrics.DENSITY_XXHIGH:
                msg = "屏幕密度:" + "480像素/英寸  \n资源文件夹:xxhdpi  \n分辨率倍数:3";
                break;
            case DisplayMetrics.DENSITY_XHIGH:
                msg = "屏幕密度:" + "320像素/英寸  \n资源文件夹:xhdpi  \n分辨率倍数:2";
                break;
            case DisplayMetrics.DENSITY_HIGH:
                msg = "屏幕密度:" + "240像素/英寸  \n资源文件夹:hdpi   \n分辨率倍数:1.5 ";
                break;
            case DisplayMetrics.DENSITY_MEDIUM:
                msg = "屏幕密度:" + "160像素/英寸  \n资源文件夹:mdpi   \n分辨率倍数:1 ";
                break;
            case DisplayMetrics.DENSITY_LOW:
                msg = "屏幕密度:" + "120像素/英寸  \n资源文件夹:ldpi   \n分辨率倍数:0.75 ";
                break;
            default:
                msg = "暂时没有处理当前分辨率,\n请参考 android.util.DisplayMetrics 。 \ndensityDpi:"+densityDpi;
                break;
        }
        return msg;
    }

以上res-dpi资源文件夹图片分辨率之间的关系可参考:Android 屏幕适配之不同res-dpi文件夹之间的关系

猜你喜欢

转载自blog.csdn.net/Michael_hejing/article/details/82025811