DisplayMetrics dm = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(dm);//获取像素int widthPixels= dm.widthPixels;int heightPixels= dm.heightPixels;float density = dm.density; // 屏幕密度(0.75 / 1.0 / 1.5)int densityDpi = dm.densityDpi; // 屏幕密度DPI(120 / 160 / 240)//屏幕dpint widthDips = (int)(widthPixels / density);int heightDips = (int)( heightPixels / density);pixels = dips * (densityDpi / 160)
?
举个例子,在DPI为240的屏幕上,1个DIP等于1.5个物理像素。
?
res | densityDpi | density | Pixels | Dips | exp |
ldpi | 120 | 0.75 | ? | ? | ? |
mdpi | 160 | 1 | ? | ? | ? |
hdpi | 240 | 1.5 | 540 X 960 | 360 X 640 | S4 mini |
xhdpi | 280 | 1.75 | ? | ? | ? |
xxhdpi | 360 | 2 | 720 X 1280 | 360 X 640 | I9300 |
?