支持多種屏幕
android運(yùn)行在不同尺寸和像素(密度)的設(shè)備上,android系統(tǒng)給應(yīng)用程序提供了一個(gè)相同的環(huán)境去適應(yīng)不同的UI顯示界面。同時(shí)系統(tǒng)提供API讓?xiě)?yīng)用程序去控制UI在不同尺寸和密度的屏幕上的顯示效果,因?yàn)槲覀兛隙ú幌M?a target="_blank">手機(jī)和平板上顯示一樣的效果。
盡管android系統(tǒng)會(huì)自動(dòng)縮放你的應(yīng)用程序以適應(yīng)不同分辨率,但是你也必須針對(duì)不同尺寸和密度的屏幕盡量?jī)?yōu)化,只有這樣才能最大程度上獲得較好的用戶體驗(yàn)。
概念
1.屏幕尺寸(Screen size):也就是我們常聽(tīng)到的iphone4 3.5寸 iphone4s 4寸 samsung s2 4.3寸 HTC butterfly 5寸等等,也就是屏幕的對(duì)角線長(zhǎng)度,
然后你可以根據(jù)屏幕的長(zhǎng)寬比計(jì)算長(zhǎng)寬的尺寸(android 將這些分為四個(gè)等級(jí),分別是small,normal, large, 和 extralarge)
2.像素密度(dpi):每英寸屏幕含有的像素點(diǎn)個(gè)數(shù) (android 也按照像素密度分了四個(gè)等級(jí),分別是low,medium, high, 和 extrahigh)
3.方向(Orientation):分水平和垂直,如果應(yīng)用做的好的話,這兩個(gè)方向都要考慮
4.分辨率(pix):也就是整個(gè)屏幕有多少個(gè)像素點(diǎn)組成,如果想應(yīng)用程序支持不同的屏幕,那應(yīng)用程序絕對(duì)不能直接根據(jù)分辨率作為單位來(lái)布局,而是應(yīng)該
通過(guò)屏幕尺寸和像素密度中設(shè)定的等級(jí)來(lái)區(qū)分
5.像素?zé)o關(guān)密度(dp/dip): 一個(gè)android定義的虛擬的像素單位,你的應(yīng)用程序應(yīng)該用此單位來(lái)定義布局大小和位置
注意,一個(gè)dp和一個(gè)大小為160dpi的屏幕中的一個(gè)像素是相等的,所以dp和pix的換算應(yīng)該是這樣的real pix =dp * (dpi)/160
當(dāng)你寫(xiě)布局文件的時(shí)候可以根據(jù)這個(gè)公式大概估算一下
(如800*480 4寸屏,計(jì)算像素密度dpi = 根號(hào)[寬的平方 + 高的平方]/屏幕尺寸,
大概算一下是240dpi左右,也就是說(shuō)你定義了一個(gè)button是100dp 寬,100dp高那么實(shí)際就是100*240/160 = 150 pix 了,也就是說(shuō)你這個(gè)button占據(jù)了屏幕的150/800 +150/480 ,
如1920*1080 5寸屏,計(jì)算像素密度dpi = 根號(hào)[寬的平方 + 高的平方]/屏幕尺寸,大概算一下是440dpi左右,也就是說(shuō)你定義了一個(gè)button是100dp 寬,100dp高那么實(shí)際就是100*440/160 = 275 pix 了,也就是說(shuō)你這個(gè)button占據(jù)了屏幕的275/1920 +275/1080 。
當(dāng)然這兩款手機(jī)上的顯示效果還是有些差距的,計(jì)算了一下前者的button寬占據(jù)了整個(gè)屏幕寬度的0.1875 而后者的button寬占據(jù)了整個(gè)屏幕的0.1432。
可以看出來(lái)前者占據(jù)的位置要大一些,這樣看起來(lái)在不同分辨率和大小的手機(jī)上效果就不太一樣了。其原因在于后者的分辨率比前者大很多,但是尺寸僅僅大了一寸,這也跟廠家的定位有關(guān)系吧,尺寸小其實(shí)是根本沒(méi)必要弄太大的分辨率的,因?yàn)楦究床怀鲂Ч麃?lái)。因此我們有必要對(duì)不同尺寸的定義不同的布局文件!!!
比如上面的4寸和5寸應(yīng)該定義兩個(gè)layout,layout定義button的長(zhǎng)寬為100dp,layout-large 定義button的長(zhǎng)寬大概為131dp ;
131*440/160 = 360 ,360/1920 = 0.1875 這樣就和在寸屏幕中所占的比例相同了
-
Android
+關(guān)注
關(guān)注
12文章
3937瀏覽量
127504 -
Layout
+關(guān)注
關(guān)注
14文章
405瀏覽量
61832
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論