android中獲取螢幕的長度和寬度,參考了網上有很多**,但結果與實際不符,如我的手機是i9000,螢幕大小是480*800px,得 到的結果卻為320*533
結果很不靠譜,於是自己寫了幾行**,親測一下
測試引數:
測試環境: i9000( 三星)
物理螢幕:480*800px
density :1.5
測試**:
// 獲取螢幕密度(方法1)int screenwidth = getwindowmanager().getdefaultdisplay().getwidth(); // 螢幕寬(畫素,如:480px)
int screenheight = getwindowmanager().getdefaultdisplay().getheight(); // 螢幕高(畫素,如:800p)
log.e(tag + " getdefaultdisplay", "screenwidth=" + screenwidth + "; screenheight=" + screenheight);
// 獲取螢幕密度(方法2)
displaymetrics dm = new displaymetrics();
dm = getresources().getdisplaymetrics();
float density = dm.density; // 螢幕密度(畫素比例:0.75/1.0/1.5/2.0)
int densitydpi = dm.densitydpi; // 螢幕密度(每寸畫素:120/160/240/320)
float xdpi = dm.xdpi;
float ydpi = dm.ydpi;
log.e(tag + " displaymetrics", "xdpi=" + xdpi + "; ydpi=" + ydpi);
log.e(tag + " displaymetrics", "density=" + density + "; densitydpi=" + densitydpi);
screenwidth = dm.widthpixels; // 螢幕寬(畫素,如:480px)
screenheight = dm.heightpixels; // 螢幕高(畫素,如:800px)
log.e(tag + " displaymetrics(111)", "screenwidth=" + screenwidth + "; screenheight=" + screenheight);
// 獲取螢幕密度(方法3)
dm = new displaymetrics();
getwindowmanager().getdefaultdisplay().getmetrics(dm);
density = dm.density; // 螢幕密度(畫素比例:0.75/1.0/1.5/2.0)
densitydpi = dm.densitydpi; // 螢幕密度(每寸畫素:120/160/240/320)
xdpi = dm.xdpi;
ydpi = dm.ydpi;
log.e(tag + " displaymetrics", "xdpi=" + xdpi + "; ydpi=" + ydpi);
log.e(tag + " displaymetrics", "density=" + density + "; densitydpi=" + densitydpi);
int screenwidthdip = dm.widthpixels; // 螢幕寬(dip,如:320dip)
int screenheightdip = dm.heightpixels; // 螢幕寬(dip,如:533dip)
log.e(tag + " displaymetrics(222)", "screenwidthdip=" + screenwidthdip + "; screenheightdip=" + screenheightdip);
screenwidth = (int)(dm.widthpixels * density + 0.5f); // 螢幕寬(px,如:480px)
screenheight = (int)(dm.heightpixels * density + 0.5f); // 螢幕高(px,如:800px)
log.e(tag + " displaymetrics(222)", "screenwidth=" + screenwidth + "; screenheight=" + screenheight);
安卓獲取螢幕最大(絕對)解析度
安卓開發時,在很多應用場景需要獲取手機螢幕的真實解析度,然而查閱了大部分部落格提供的獲取方法發現獲取方法並不對。下面幾種常用的方法 錯誤 和最終正確獲取的方法均會展示在下面。實驗場景 activity 隱藏或不隱藏狀態列 虛擬導航欄等場景 service 中。錯誤方法一 displaymetrics...
關於安卓開發過程中螢幕的各種使用
獲取螢幕寬高的兩種方法 1 windowmanager wm this.getwindowmanager intwidth wm.getdefaultdisplay getwidth intheight wm.getdefaultdisplay getheight 2 windowmanager w...
獲取安卓應用的版本
獲取安卓應用的版本 在清單檔案androidmanifest.xml中設定程式的版本 android versionname 1.0.1 有時候我們須要在 中獲取到這個版本。1.獲取當前應用的版本號名 public string versionname try catch exception e r...