DPI 計算及速查表

【來源】ExMobi 二次開發手冊ui

手機屏幕根據密度範圍分爲五種:低、中、高、超高、超超高,爲了確保界面元素在不一樣的屏幕都能合適的展現,在設計界面元素的 UI 時,UI 工程師建議統一採用 dpi (Dots Per Inch) 來定義界面元素。spa

計算手機dpi,須要知道手機屏幕尺寸和手機分辨率。即設計

 

手機分辨率 屏幕尺寸(Inch) 實際 DPI 分屏 DPI 值
480 x 800 4 英寸 233 高分屏 [188,300) 240
480 x 854 3.7 英寸 265 高分屏 [188,300) 240
1024 x 768 9.7 英寸 132 中分屏 [121,188) 160
320 x 480 3.5 英寸 165 中分屏 [121,188) 160
640 x 960 3.5 英寸 330 超高分屏 [300,420) 320
1920 x 1080 5 英寸 440 超超高分屏 [420, ) 480

 

 

 

 

 

 

 

【示例】code

三星 i9000,屏幕尺寸 4 英寸,分辨率 480 * 800。套入公式blog

計算結果取近似值 233,即三星 i9000 的 dpi 爲 233。介於高分屏區間 [188,300],因此取 240.圖片

在實際設計中,UI 度量單位以 640*960 設計圖爲基準,測量實際尺寸除以 2。如今以 720*1280 設計圖爲基準。開發

 1 /**
 2      * 得到屏幕相對的寬度和高度<br />
 3      * 橫屏時候寬度大於高度,豎屏時候高度大於寬度
 4      * 
 5      * param windowManager
 6      * return <br />
 7      *         point.x:寬度,point.y:高度
 8      */
 9     @SuppressLint("NewApi")
10     public static Point getScreenSize(WindowManager windowManager) {
11         Point point = new Point(0, 0);
12         if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB_MR2) {
13             point.x = windowManager.getDefaultDisplay().getWidth();
14             point.y = windowManager.getDefaultDisplay().getHeight();
15         } else {
16             windowManager.getDefaultDisplay().getSize(point);
17         }
18 
19         return point;
20     }
得到屏幕的寬度和密度
public static int getScreenWidth(Context context) {  
        WindowManager manager = (WindowManager) context  
                .getSystemService(Context.WINDOW_SERVICE);  
        Display display = manager.getDefaultDisplay();  
        return display.getWidth(); 
        
    }
    
    public static float getScreeDensity(Context context){
        WindowManager manager = (WindowManager) context  
                .getSystemService(Context.WINDOW_SERVICE);  
        DisplayMetrics metric = new DisplayMetrics();
        manager.getDefaultDisplay().getMetrics(metric);

        float density = metric.density;  // 密度(0.75 / 1.0 / 1.5 / 2.0)
        //int densityDpi = metric.densityDpi;
        return density;
    }

根據屏幕大小調整尺寸get

1 // 根據屏幕和圖片大小調整顯示尺寸
2             int justShowViewHeight = mScreenSize.x * 150 / 640;
3             LayoutParams justShowParams = mJustShowImg.getLayoutParams();
4             justShowParams.height = justShowViewHeight;
5             mJustShowImg.setLayoutParams(justShowParams);
6             Picasso.with(mActivity).load(R.drawable.fragment_main_justshow).into(mJustShowImg);
相關文章
相關標籤/搜索