1. 程式人生 > >Android 獲取螢幕畫素的方法

Android 獲取螢幕畫素的方法

我們需要獲取Android手機或Pad的螢幕的物理尺寸,以便於介面的設計或是其他功能的實現。下面就介紹講一講如何獲取螢幕的物理尺寸。

下面的程式碼即可獲取螢幕的尺寸。在一個Activity的onCreate方法中,寫入如下程式碼:

        DisplayMetrics metric = new DisplayMetrics();        getWindowManager().getDefaultDisplay().getMetrics(metric);        int width = metric.widthPixels;     // 螢幕寬度(畫素)        int height = metric.heightPixels;   // 螢幕高度(畫素)        float density = metric.density;      // 螢幕密度(0.75 / 1.0 / 1.5)        int densityDpi = metric.densityDpi;  // 螢幕密度DPI(120 / 160 / 240)

    但是,需要注意的是,在一個低密度的小屏手機上,僅靠上面的程式碼是不能獲取正確的尺寸的。比如說,一部240x320畫素的低密度手機,如果執行上述程式碼,獲取到的螢幕尺寸是320x427。因此,研究之後發現,若沒有設定多解析度支援的話,Android系統會將240x320的低密度(120)尺寸轉換為中等密度(160)對應的尺寸,這樣的話就大大影響了程式的編碼。所以,需要在工程的AndroidManifest.xml檔案中,加入supports-screens節點,具體的內容如下:
        <supports-screens            android:smallScreens="true"            android:normalScreens="true"            android:largeScreens="true"            android:resizeable="true"            android:anyDensity="true" /> 

   這樣的話,當前的Android程式就支援了多種解析度,那麼就可以得到正確的物理尺寸了。