// 方法一:
windowmanager wm1 = this.getwindowmanager();
int width1 = wm1.getdefaultdisplay().getwidth();
int height1 = wm1.getdefaultdisplay().getheight();
// 方法二:
windowmanager wm = (windowmanager) getsystemservice(context.window_service);
int width2 = wm.getdefaultdisplay().getwidth();
int height2 = wm.getdefaultdisplay().getheight();
// 方法一與方法二獲取螢幕寬度的方法類似,只是獲取windowmanager 物件時的途徑不同。
// 方法三:
windowmanager wm = (windowmanager) getsystemservice(context.window_service);
displaymetrics outmetrics = new displaymetrics();
manager.getdefaultdisplay().getmetrics(outmetrics);
int width3 = outmetrics.widthpixels; // 螢幕寬度(畫素)
int height3 = outmetrics.heightpixels; // 螢幕高度(畫素)
float density = outmetrics.density; // 螢幕密度(0.75 / 1.0 / 1.5)
int densitydpi = outmetrics.densitydpi; // 螢幕密度dpi(120 / 160 / 240)
// 方法四:
resources resources = this.getresources();
displaymetrics dm = resources.getdisplaymetrics();
float density = dm.density;
int width4 = dm.widthpixels;
int height4 = dm.heightpixels;
// 方法三與方法四類似。
因 display.getheight(),display.getwidth() 方法過時推薦使用方法三與四
但是,需要注意的是,在乙個低密度的小屏手機上,僅靠上面的**是不能獲取正確的尺寸的。比如說,一部240x320畫素的低密度手機,如果執行上述**,獲取到的螢幕尺寸是320x427。因此,研究之後發現,若沒有設定多解析度支援的話,android系統會將240x320的低密度(120)尺寸轉換為中等密度(160)對應的尺寸,這樣的話就大大影響了程式的編碼。所以,需要在工程的androidmanifest.xml檔案中,加入supports-screens節點,具體的內容如下:
android:smallscreens="true"
android:normalscreens="true"
android:largescreens="true"
android:resizeable="true"
android:anydensity="true" />
這樣的話,當前的android程式就支援了多種解析度,那麼就可以得到正確的物理尺寸了。 android 獲取螢幕寬高
發現專案中有兩種獲取螢幕寬高的方法 一 通過windowmanager獲取display,通過display獲取metrics,通過metrics獲取寬高。最後的單位是px。public static final int getscreenwidth 二 通過windowmanager獲取displ...
獲取螢幕的寬高
獲取螢幕長寬常用方法有三種 androidmanifest.xml檔案中,加入supports screens節點,這樣的話,當前的android程式就支援了多種解析度,那麼就可以得到正確的物理尺寸了。方法一 windowmanager wm windowmanager getsystemservi...
關於獲取Flex Mobile螢幕寬高
1.mobile width and height import flash.display.screen import flash.system.capabilities trace capabilities.screenresolutionx,capabilities.screenresolut...