Android 獲取螢幕解析度

2021-07-27 22:48:45 字數 1739 閱讀 6116

得到乙個螢幕尺寸的三種方法如下:

// 通過windowmanager獲取

displaymetrics dm = new displaymetrics();

getwindowmanager().getdefaultdisplay().getmetrics(dm);

// 通過resources獲取 

displaymetrics dm2 = getresources().getdisplaymetrics();

// 獲取螢幕的預設解析度

display display = getwindowmanager().getdefaultdisplay();

system.out.println("width-display :" + display.getwidth());

system.out.println("heigth-display :" + display.getheight());

在安卓4.2系統中,使用方法一得到了正確的螢幕尺寸值,而使用方法二和三得到的值全部為零。原因不祥。其中方法三中的display.getwidth()和display.getheight()已被棄用。

displaymetrics dm = new displaymetrics();

getwindowmanager().getdefaultdisplay().getmetrics(dm);//display = getwindowmanager().getdefaultdisplay();display.getmetrics(dm)(把螢幕尺寸資訊賦值給displaymetrics dm);

width = dm.widthpixels;

height = dm.heightpixels;

xdpi = dm.xdpi;

ydpi = dm.ydpi;

density = dm.densitydpi;

fdensity = dm.density;

查詢log,得到各值如下:

d/lichking(22643): -----------widthpixels---540

d/lichking(22643): -----------heightpixels---960

d/lichking(22643): -----------xdpi---244.92857

d/lichking(22643): -----------ydpi---246.30302

d/lichking(22643): -----------density---240

d/lichking(22643): -----------fdensity---1.5

另提一點,我們通常所指的螢幕上的int尺寸是畫素單位,比如我用gethitrect()得到控制項的矩形座標的值即使和畫素尺寸相匹配的。

displaymetrics和display的關係。

display指代顯示區域這個物件,它可能是真實的物理螢幕,也可能僅指應用程式的顯示區域,比如在非全屏activity裡,系統因為有狀態列,因此顯示區域要比物理螢幕要小。displaymetrics裡封裝了顯示區域的各種屬性值。檢視原始碼發現,在displaymetrics對各個屬性值的注釋都說明為真實的物理尺寸。而且也發現display.getmetrics(dm)這一函式基本在應用在獲取真實螢幕尺寸的時候。記住這一點即好。

另外xdpi不是指螢幕寬度上以dp為單位的大小。以dp為單位的螢幕寬度需用計算公式:dpwidth = widthpixels / fdensity = 540 / 1.5 = 360

android 螢幕解析度問題

在研究android的icon設計之前,有必要先了解android的介面是如何適配多樣化螢幕的。適配性程式將進行縮放,但是效果較差。為這兩個精度螢幕的手機各提供乙個。但是螢幕的引數多樣化,為每乙個精度的螢幕都設計一套icon,工作量大並且不能滿足程式的相容 性要求,勢必要對螢幕的分級,如在160dp...

android 螢幕解析度問題

iphone的icon設計就這麼簡單,iphone的螢幕只有320 480畫素,所以程式沒有適配性問題。android 在研究 android的icon設計之前,有必要先了解android的介面是如何適配多樣化螢幕的。適配性程式將進行縮放,但是效果較差。為這兩個精度螢幕的手機各提供乙個。但是螢幕的引...

獲取手機螢幕解析度

獲取手機螢幕解析度的類 displaymetrics dm new displaymetrics getwindowmanager getdefaultdisplay getmetrics dm 獲得手機的寬頻和高度畫素單位為px string str 手機螢幕解析度為 dm.widthpixels...