1. 程式人生 > >Android開發中的使用單位問題的處理總結

Android開發中的使用單位問題的處理總結

目前最新的SDK是推薦dp這個單位,其實在真正開發過程中,無論是dp還是dip都不怎麼會影響到顯示效果(dip原本是dip,為了和sp這個單位同意,改名成了dp)

px
全拼pixel,我們常說的畫素,構成我們螢幕上影象的最小單位
概念:顯示解析度是顯示器在顯示影象時的解析度,解析度是用點來衡量的,顯示器上這個“點”就是指畫素(pixel)。顯示解析度的數值是指整個顯示器所有可視面積上水平畫素和垂直畫素的數量。例如800×600的解析度,是指在整個螢幕上水平顯示800個畫素,垂直顯示600個畫素。
影象解析度,指影象中儲存的資訊量,是每英寸影象內有多少個畫素點,解析度的單位為PPI(Pixels Per Inch)

dpi
作為螢幕解析度單位如果只有px,明顯太單薄了,於是有了dpi這個新單位。
dpi一種畫素密度,英文全稱是 Dots Per Inch 字面上意思也很好理解,就是指每英寸的畫素數量,這裡Inch是英寸。1英寸 = 2.54cm,我們專案中的res中的 hdpi,xdpi,xhdpi就是用的這個單位。一般情況 ldpi是120,mdpi是160,hdpi是240,xhdpi是320
dp/dip的使用(dip 全稱是Density-independent pixel 翻譯過來就是 畫素無關密度)
px = dip*dpi/160
試想現在有2個螢幕,螢幕的大小都是1寸,A螢幕密度為160,B螢幕密度為320。要去顯示一個為寬度為80按鈕button。如果用px為單位,A螢幕上button佔螢幕的一半0.5寸,B螢幕上button佔螢幕的四分之一 0.25寸,小了一半。如果用dip 為單位 80dip
A螢幕上的大小是:80*160/160=80px,
B螢幕上的大小 : 80*320/160 = 160px 。
dp 的意義是根據你看到的實際大小。在應用中設定對應的dp值,而使得不同的螢幕上看起來一樣大。
sp 用於設定字型與dp類似但是可以根據手機的設計再次進行調整。

參考文章:教你徹底弄清楚dpi 、 dip 、解析度、螢幕尺寸、px、density 關係