Android开发之获取设备的屏幕信息和px dp之间的转换

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 }
原文地址:https://www.cnblogs.com/liyiran/p/4663440.html