1 DisplayMetrics metric = new DisplayMetrics(); 2 getWindowManager().getDefaultDisplay().getMetrics(metric); 3 int width = metric.widthPixels; // 屏幕寬度(像素) 4 int height = metric.heightPixels; // 屏幕高度(像素) 5 float density = metric.density; // 屏幕密度(0.75 / 1.0 / 1.5) 6 int densityDpi = metric.densityDpi; // 屏幕密度DPI(120 / 160 / 240)
常用工具:px和dp之間轉換,主要用於設備之間的適配
1 public class DensityUtil { 2 private static final String TAG = "DensityUtil"; 3 4 /** 5 * 根據手機的分辨率從 dip 的單位 轉成為 px(像素) 6 */ 7 public static int dip2px(Context context, float dpValue) { 8 final float scale = context.getResources().getDisplayMetrics().density; 9 return (int) (dpValue * scale + 0.5f); 10 } 11 12 /** 13 * 根據手機的分辨率從 px(像素) 的單位 轉成為 dp 14 */ 15 public static int px2dip(Context context, float pxValue) { 16 final float scale = context.getResources().getDisplayMetrics().density; 17 return (int) (pxValue / scale + 0.5f); 18 } 19 20 /** 21 * 獲取手機的分辨率px,返回一個數組,為寬度和長度。 22 */ 23 public static int[] getDevicePx(Activity activity) { 24 DisplayMetrics metrics = new DisplayMetrics(); 25 activity.getWindowManager().getDefaultDisplay().getMetrics(metrics); 26 int width = metrics.widthPixels; 27 int heigth = metrics.heightPixels; 28 return new int[]{width, heigth}; 29 } 30 }