支持多種屏幕
android運行在不同尺寸和像素(密度)的設備上,android系統給應用程序提供了一個相同的環境去適應不同的UI顯示界面。同時系統提供API讓應用程序去控制UI在不同尺寸和密度的屏幕上的顯示效果,因為我們肯定不希望在手機和平板上顯示一樣的效果。
盡管android系統會自動縮放你的應用程序以適應不同分辨率,但是你也必須針對不同尺寸和密度的屏幕盡量優化,只有這樣才能最大程度上獲得較好的用戶體驗。
概念
1.屏幕尺寸(Screen size):也就是我們常聽到的iphone4 3.5寸 iphone4s 4寸 samsung s2 4.3寸 HTC butterfly 5寸等等,也就是屏幕的對角線長度,
然后你可以根據屏幕的長寬比計算長寬的尺寸(android 將這些分為四個等級,分別是small,normal, large, 和 extralarge)
2.像素密度(dpi):每英寸屏幕含有的像素點個數 (android 也按照像素密度分了四個等級,分別是low,medium, high, 和 extrahigh)
3.方向(Orientation):分水平和垂直,如果應用做的好的話,這兩個方向都要考慮
4.分辨率(pix):也就是整個屏幕有多少個像素點組成,如果想應用程序支持不同的屏幕,那應用程序絕對不能直接根據分辨率作為單位來布局,而是應該
通過屏幕尺寸和像素密度中設定的等級來區分
5.像素無關密度(dp/dip): 一個android定義的虛擬的像素單位,你的應用程序應該用此單位來定義布局大小和位置
注意,一個dp和一個大小為160dpi的屏幕中的一個像素是相等的,所以dp和pix的換算應該是這樣的real pix =dp * (dpi)/160
當你寫布局文件的時候可以根據這個公式大概估算一下
(如800*480 4寸屏,計算像素密度dpi = 根號[寬的平方 + 高的平方]/屏幕尺寸,
大概算一下是240dpi左右,也就是說你定義了一個button是100dp 寬,100dp高那么實際就是100*240/160 = 150 pix 了,也就是說你這個button占據了屏幕的150/800 +150/480 ,
如1920*1080 5寸屏,計算像素密度dpi = 根號[寬的平方 + 高的平方]/屏幕尺寸,大概算一下是440dpi左右,也就是說你定義了一個button是100dp 寬,100dp高那么實際就是100*440/160 = 275 pix 了,也就是說你這個button占據了屏幕的275/1920 +275/1080 。
當然這兩款手機上的顯示效果還是有些差距的,計算了一下前者的button寬占據了整個屏幕寬度的0.1875 而后者的button寬占據了整個屏幕的0.1432。
可以看出來前者占據的位置要大一些,這樣看起來在不同分辨率和大小的手機上效果就不太一樣了。其原因在于后者的分辨率比前者大很多,但是尺寸僅僅大了一寸,這也跟廠家的定位有關系吧,尺寸小其實是根本沒必要弄太大的分辨率的,因為根本看不出效果來。因此我們有必要對不同尺寸的定義不同的布局文件!!!
比如上面的4寸和5寸應該定義兩個layout,layout定義button的長寬為100dp,layout-large 定義button的長寬大概為131dp ;
131*440/160 = 360 ,360/1920 = 0.1875 這樣就和在寸屏幕中所占的比例相同了
-
Android
+關注
關注
12文章
3936瀏覽量
127413 -
Layout
+關注
關注
14文章
404瀏覽量
61779
發布評論請先 登錄
相關推薦
評論