在一個Activity的onCreate方法中,寫入如下代碼:
DisplayMetrics metric = newDisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);
int width= metric.widthPixels; //屏幕寬度(像素)
int height= metric.heightPixels; //屏幕高度(像素)
floatdensity =metric.density; //屏幕密度(0.75 / 1.0 / 1.5)
intdensityDpi = 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"/>