名称 像素密度范围
mdpi 120dpi~160dpi
hdpi 160dpi~240dpi
xhdpi 240dpi~320dpi
xxhdpi 320dpi~480dpi
xxxhdpi 480dpi~640dpi
屏幕密度 图标尺寸
mdpi 48x48px
hdpi 72x72px(+24)
xhdpi 96x96px(+48)
xxhdpi 144x144px(+96)
xxxhdpi 192x192px(+144)
某一些手机变态,需要自己测量屏幕分辨率
DisplayMetrics dm = new DisplayMetrics()
getWindowManager().getDefaultDisplay().getMetrics(dm);
int dpi = dm.densityDpi;这个就是屏幕分辨率
获取到手机分辨率后,就可以对症下药
在res下,新建values-h540dp文件夹,或者values-h720dp文件夹等等
另外一种方法
在res下,新建values-2560x1440文件夹,然后在里面写dimens.xml
注意:有些变态手机系统上写的屏幕宽高是:2160x1080,但是用实际代码去测量跟这个不一致,害我找了半天。
如果大家碰到设置values-2160x1080无效,则自己用代码去设置
// 真实分辨率 宽 真实分辨率:1080*1920 每英寸:480 int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); // 真实分辨率 高 int screenHeight = getWindowManager().getDefaultDisplay().getHeight(); DisplayMetrics dm = new DisplayMetrics(); dm = getResources().getDisplayMetrics(); // 屏幕密度(每寸像素120(ldpi)/160(mdpi)/213(tvdpi)/240(hdpi)/320(xhdpi)) int densityDPI = dm.densityDpi; LogUtils.e("真实分辨率:" + screenWidth + "*" + screenHeight + " 每英寸:" + densityDPI);