獲取手機螢幕DisplayMetrics屬性方法

2022-07-31 01:03:11 字數 1742 閱讀 5224

**:

其他參考:

其他參考:

android 可設定為隨著視窗大小調整縮放比例,但即便如此,手機程式設計人員還是必須知道手機螢幕的邊界,以避免縮放造成的布局變形問題。

手機的解析度資訊是手機的一項重要資訊,很好的是,android 已經提供displaymetircs 類可以很方便的獲取解析度。下面簡要介紹 displaymetics 類:

andorid.util 包下的displaymetrics 類提供了一種關於顯示的通用資訊,如顯示大小,解析度和字型。

為了獲取displaymetrics 成員,首先初始化乙個物件如下:

displaymetrics metrics = new displaymetrics();

getwindowmanager().getdefaultdisplay().getmetrics;

注:建構函式displaymetrics 不需要傳遞任何引數;呼叫getwindowmanager() 之後,會取得現有activity 的handle ,此時,getdefaultdisplay() 方法將取得的寬高維度存放於displaymetrics 物件中,而取得的寬高維度是以畫素為單位(pixel) ,「畫素」所指的是「絕對畫素」而非「相對畫素」。

通過displaymetrics的

tostring()方法可以獲取到

displaymetrics的大部分

fields資訊,如下是在解析度為

480x320情況下的一些輸出資訊:

其中,density為顯示的邏輯解析度(文件中說了很多,看得不是很明

白);width及height就為螢幕解析度(為絕對寬度與高度),與fields中的widthpixels及heightpixels一

致;scaledensity與density一致;xdpi及ydpi為準確物理畫素。

下面我們來比較android中dip, dp, px, sp之間的區別:

dip: device independent pixels(裝置獨立畫素).

不同裝置有不同的顯示效果,這個和裝置硬體有關,一般我們為了支援wvga、hvga和qvga 推薦使用這個,不依賴畫素。

px: pixels(畫素). 不同裝置顯示效果相同,一般我們hvga代表320x480畫素,這個用的比較多。

pt: point,是乙個標準的長度單位,1pt=1/72英吋,用於印刷業,非常簡單易用;

sp: scaled pixels(放大畫素). 主要用於字型顯示best for textsize,根據 google 的建議,textview 的字型大小最好使用 sp 做單位,

過去,程式設計師通常以畫素為單位設計計算機使用者介面。例如,定義乙個寬度為300畫素的表單字段,列之間的間距為5個畫素,圖示大小為16×16畫素

等。這樣處理的問題在於,如果在乙個每英吋點數(dpi)更高的新顯示器上執行該程式,則使用者介面會顯得很小。在有些情況下,使用者介面可能會小到難以看清

內容。

與解析度無關的度量單位可以解決這一問題,android支援下列所有單位:

px(畫素):螢幕上的點。

in(英吋):長度單位。

mm(公釐):長度單位。

pt(磅):1/72英吋。

dp(與密度無關的畫素):一種基於螢幕密度的抽象單位。在每英吋160點的顯示器上,1dp = 1px。

dip:與dp相同,多用於android/ophone示例中。

sp(與刻度無關的畫素):與dp類似,但是可以根據使用者的字型大小首選項進行縮放。

獲取手機螢幕大小

通過windowmanager獲取 displaymetrics dm new displaymetrics getwindowmanager getdefaultdisplay getmetrics dm phonewidth.settext 通過windowmanager獲取的手機螢幕的寬度 d...

Pyqt adb 獲取Android手機螢幕

adb的全稱為android debug bridge,就是起到除錯橋的作用。adb的工作方式比較特殊,採用監聽socket tcp 5554等埠的方式讓ide和qemu通訊,預設情況下adb會daemon相關的網路埠,借助adb工具,我們可以管理裝置或手機模擬器的狀態。還可以進行很多手機操作,如安...

獲取手機螢幕解析度

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