android屏幕顯示相關字段的理解

1、字段

1.density(密度):描述設備屏幕一個區域內佔用多少像素,不一樣的設備有不一樣的密度,是個概念名稱,單位爲dpi html

2.dpi:dots per inch ,來表示某一英寸內的像素點,是密度的單位。一個設備可能支持多個分辨率,故dpi會根據像素變化(不少設備支持多分辨率切換) android

3.px(像素):屏幕基本單位 api

4.dp:Density-independent pixel根據設備的density的不一樣,計算後與px的比值爲 ide

px/dp=當前設備dpi/160

5.inch(英寸):屏幕對角線長度,1 inch = 2.54cm 佈局

6.resolution(分辨率):設備屏幕的總像素點 ui


2、dp和px使用理解

網上看到大多數對dp理解文章,以前也很是篤信。後來實際開發中發現並不僅如此。網上講的大多隻是初步一半的解釋,仔細翻過api文檔中的朋友會發現: spa

Supporting Multiple Screens

http://developer.android.com/guide/practices/screens_support.html orm


支持多個設備屏幕,不一樣設備有不一樣的density,dpi會隨分辨率變化,dp比值也會變化。故網上大多數講情景都是設備dp/px=dpi/160相同的2個設備上運行時一致的。但當同一個apk在2個比值不相同的設備上運行時,效果確定有很大差別的。 htm


應用開發都但願用一個apk能在全部的設備上正常顯示,效果一致,不須要再作第2次無用開發。 ip

相信實現過的人,都有不一樣的實現方式。

下面是做者基於同一個apk在不一樣設備上的情景分析。

1.在同一個設備上,可能支持不一樣分辨率,密度不變,dpi會變化:

dp做爲單位:此時能自動適應當前設備不一樣分辨率,正常顯示。而且只須要一個佈局文件便可。

px做爲單位:須要2套不一樣分辨率的佈局文件


2.不一樣設備上,不一樣分辨率,不一樣密度:


dp做爲單位:此時不必定能自動適應設備不一樣分辨率,當設備的dpi與以前正常顯示的設備一直時,能正常顯示。不然,一樣須要2套dp的佈局才能正常顯示,見下圖分析。



px做爲單位:須要2套不一樣分辨率的佈局文件



3、總結:

做者在實際開發中,主要是固定電視(最多也就遇到過4個尺寸的,2套分辨率)上開發,大多數仍是用px做爲基本單位,2套佈局,1套高清資源。由於儘管各個廠家設備密度怎麼變化,px永遠是基本單位,能作到精確佈局,但就是會增長一點維護成本。

在手機開發中,仍是大多數用dp便可。方便快捷,能適應大部分機型。可是部分分辨率和尺寸又小的機子,用dp作不到徹底適配,部分文字過長就會被遮擋。能夠用多個value值來適配。


以上是本身的理解,歡迎
糾正。

相關文章
相關標籤/搜索