ios/andoird
图片大小 | Android | iOS | density | densityDpi | 换算 |
---|---|---|---|---|---|
75% | ldpi | 0.75x | 0.75(=120/160) | 120 | 1dp = 0.75px |
100% | mdpi | 1x | 1(=160/160) | 160 | 1dp = 1px |
150% | hdpi | 1.5x | 1.5(=240/160) | 240 | 1dp = 1.5px |
200% | xhdpi | 2x | 2(=320/160) | 320 | 1dp = 2px |
300% | xxhdpi | 3x | 3(=480/160) | 480 | 1dp = 3px |
400% | xxxhdpi | 4x | 4(=640/160) | 640 | 1dp = 4px |
方式一:
//Android hdpi,xhdpi,xxhdpi 屏幕适配 , 如何知道手机是hdpi,xhdpi,还是xxhdpi
//#######################################################################
//方式一:
//#######################################################################
float density = getResources().getDisplayMetrics().density;
Log.e(TAG, "\n\ndensity============================>" + density);//2.0
if (density == 0.75) {
Log.e(TAG, "density 120dpi : 1dp = 0.75px===============用ldpi");
} else if (density == 1.0) {
Log.e(TAG, "density 默认160dpi : 1dp = 1px===============用mdpi");
} else if (density == 1.5) {
Log.e(TAG, "density 240dpi : 1dp = 1.5px===============用hdpi");
} else if (density == 2.0) {
Log.e(TAG, "density 320dpi : 1dp = 2px===============用xhdpi");
} else if (density == 3.0) {
Log.e(TAG, "density 480dpi : 1dp = 3px===============用xxhdpi");
} else if (density == 4.0) {
Log.e(TAG, "density 640dpi : 1dp = 4px===============用xxxhdpi");
}
方式二:
//#######################################################################
//方式二:
//#######################################################################
int densityDpi = getResources().getDisplayMetrics().densityDpi;
Log.e(TAG, "\n\ndensityDpi============================>" + densityDpi);//320
switch (densityDpi) {
case DisplayMetrics.DENSITY_LOW:
Log.e(TAG, "densityDpi 120dpi : 1dp = 0.75px===============用ldpi");
break;
case DisplayMetrics.DENSITY_MEDIUM:
Log.e(TAG, "densityDpi 默认160dpi : 1dp = 1px===============用mdpi");
break;
case DisplayMetrics.DENSITY_HIGH:
Log.e(TAG, "densityDpi 240dpi : 1dp = 1.5px===============用hdpi");
break;
case DisplayMetrics.DENSITY_XHIGH:
Log.e(TAG, "densityDpi 320dpi : 1dp = 2px===============用xhdpi");
break;
case DisplayMetrics.DENSITY_XXHIGH:
Log.e(TAG, "densityDpi 480dpi : 1dp = 3px===============用xxhdpi");
break;
case DisplayMetrics.DENSITY_XXXHIGH:
Log.e(TAG, "densityDpi 640dpi : 1dp = 4px===============用xxxhdpi");
break;
}
方式三 :
> adb shell wm density
Physical density: 320
获取的值再除以160
= 2.0