1. dip: device independent pixels( 設備獨立像素 ). 不同設備有不同的顯示效果 , 這個和設備 硬件有關, 一般我們?yōu)榱酥С?WVGA 、 HVGA 和 QVGA 推薦使用這這個, 不依賴像素。這里要特別注意 dip 與屏幕密度有關,而屏幕密度又與具體的硬件有關,硬件設置不正 確,有可能導致 dip 不能正常顯示。在屏幕密度為 160 的顯示屏上, 1dip=1px ,有時候可能 你的屏幕分辨率很大如 480*800 ,但是屏幕密度沒有正確設置比如說還是 160 ,那么這個時 候凡是使用 dip 的都會顯示異常,基本都是顯示過小。dip 的換算:dip ( value ) =(int) (px ( value ) /1.5 + 0.5) 2. dp: 很簡單,和 dip 是一樣的。3. px: pixels( 像素 ) ,不同的設備不同的顯示屏顯示效果是相同的,這是絕對像素,是多少就 永遠是多少不會改變。4. sp: scaled pixels( 放大像素 ). 主要用于字體顯示 best for textsize 。備注 : 根據(jù) google 的推薦,像素統(tǒng)一使用 dip ,字體統(tǒng)一使用 sp 舉個例子區(qū)別 px 和 dip :px 就是像素,如果用 px, 就會用實際像素畫,比個如吧,用畫一條長度為 240px 的橫線,在 480 寬的模擬器上看就是一半的屏寬,而在 320 寬的模擬器上看就是 2 / 3 的屏寬了。而 dip ,就是把屏幕的高分成 480 分,寬分成 320 分。比如你做一條 160dip 的橫線,無論你 在 320 還 480 的模擬器上,都是一半屏的長度。
創(chuàng)新互聯(lián)主打移動網站、網站建設、成都網站制作、網站改版、網絡推廣、網站維護、國際域名空間、等互聯(lián)網信息服務,為各行業(yè)提供服務。在技術實力的保障下,我們?yōu)榭蛻舫兄Z穩(wěn)定,放心的服務,根據(jù)網站的內容與功能再決定采用什么樣的設計。最后,要實現(xiàn)符合網站需求的內容、功能與設計,我們還會規(guī)劃穩(wěn)定安全的技術方案做保障。
在Android開發(fā)中,我們在描述View的寬、高時通常使用dp,但是設計在UI中進行標注時,卻使用的是px。所以很多時候就導致UI和實際效果不一致。史記開發(fā)中,給設計和開發(fā)人員帶來了很多困擾。
在回答上面的問題之前,我們需要了解Android上一些基本概念:
可以看到,如果不用dp進行轉換,同樣一個布局,在不同的手機上差異巨大,甚至有可能導致布局錯亂,這樣對普通用戶的使用體驗極差。而使用dp就基本不會出現(xiàn)這 種情況,因為Android系統(tǒng)已經幫我們進行了適配。
Android中,dp是Density-independent Pixels簡寫,而dip則是Density Independent Pixels,實際上指的是一個概念,都是Android的單位。
dp等同于dip,它是一個長度單位,1dp=1/160英寸。
dp這個單位的意義在于:你可以根據(jù)看到的實際大小,在應用中設置對應的dp值,而使得不同的設備上看起來一樣大。
詳情請見:
單位dp的最大優(yōu)勢是:
可以防止同樣的分辨率在不同物理尺寸的屏幕上帶來的差異
可以讓UI適配得足夠精細,而不是完全等比例縮放
可以做到一定程度的定制,足夠精細
dp是長度單位! dp也就是dip。這個和sp基本類似。如果設置表示長度、高度等屬性時可以使用dp或sp。但如果設置字體,需要使用sp。dp是與密度無關,sp除了與密度無關外,還與scale無關。如果屏幕密度為160,這時dp和sp和px是一樣的。1dp=1sp=1px,但如果使用px作單位,如果屏幕大小不變(假設還是3.2寸),而屏幕密度變成了320。那么原來TextView的寬度設成160px,在密度為320的3.2寸屏幕里看要比在密度為160的3.2寸屏幕上看短了一半。但如果設置成160dp或160sp的話。系統(tǒng)會自動將width屬性值設置成320px的。也就是160 * 320 / 160。其中320 / 160可稱為密度比例因子。也就是說,如果使用dp和sp,系統(tǒng)會根據(jù)屏幕密度的變化自動進行轉換.