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

本文详细介绍了Android系统中不同屏幕密度对应的资源文件夹(res-dpi)及其分辨率倍数,通过一个信息获取函数帮助开发者理解如何根据设备屏幕密度选择正确的资源文件夹,实现屏幕适配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目的

不同设备系统识别的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文件夹之间的关系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一翼诚-Hokings

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值