Android-屏幕分辨率學習

一、Android 屏幕尺寸、px、dpi、dip、sp

參考:https://blog.csdn.net/m0_37828249/article/details/79061899

  • 屏幕尺寸:指屏幕的對角線長度,單位是英寸,1英寸等於2.54釐米,常見尺寸有2.4,2.8,3.5,3.7,4.2,5.0,5.5,6.0等。

  • 屏幕分辨率px:指在縱橫向上的像素點數,單位是px,1px爲一個像素點,一般格式爲縱向像素橫向像素,如1960×1080。

  • 屏幕像素密度dpi:相同尺寸情況下,分辨率越高,屏幕越清晰,即屏幕像素密度越大。屏幕像素密度指每英寸上面的像素點個數,單位是dpi,是“dot per inch”的縮寫,計算方式:dpi = px / 尺寸

  • 密度無關像素dip:單位dip或dp,是Density Independent Pixels的縮寫,Android規定,在屏幕像素密度爲160dpi的情況下,1dp=1px。而在像素密度爲320dpi的情況下,1dp=2px,以此類推。計算公式:1dp=(像素密度/160dpi)*1px。

  • sp:全稱cale-independent pixels,與dp類似,用於設置字體大小。

  • 設置佈局時,使用dp和sp(字體),不要直接使用px,這樣才能保證屏幕適配。

dp的範圍劃分:

名稱 像素密度範圍
mdpi 120dpi ~ 160dpi
hdpi 160dpi ~ 240dpi
xhdpi 240dpi ~ 320dpi
xxhdpi 320dpi ~ 480dpi
xxxhdpi 480dpi ~ 640dpi

二、DisplayMetircs

參考:https://blog.csdn.net/zhangqijie001/article/details/5894872

手機的分辨率信息是手機的一項重要信息,Android 提供DisplayMetircs 類可以很方便的獲取分辨率。

Andorid.util 包下的DisplayMetrics 類提供了一種關於顯示的通用信息,如顯示大小,分辨率和字體。

爲了獲取DisplayMetrics 成員,首先初始化一個對象如下:

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

注:構造函數DisplayMetrics 不需要傳遞任何參數;調用getWindowManager() 之後,會取得現有Activity 的Handle ,此時,getDefaultDisplay() 方法將取得的寬高維度存放於DisplayMetrics 對象中,而取得的寬高維度是以像素爲單位(Pixel) ,“像素”所指的是“絕對像素”而非“相對像素”。

三、自定義屬性從資源文件獲取長度

getDimension()
getDimensionPixelSize()
getDimensionPixelOffset()

getDimension()、getDimensionPixelSize()和getDimenPixelOffset()的結果值都是將資源文件中定義的dip值乘以屏幕密度,getDimension()返回的是float,其餘兩個返回的是int, 其中getDimensionPixelSize()返回的是實際數值的四捨五入,而getDimensionPixelOffset返回的是實際數值去掉後面的小數點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章