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(像素) 的单位 转成为 dp14 */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 }