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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM