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)
//屏幕dp
int 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 |