標籤:android style color ar os 使用 sp 檔案 on
總結一下自己的適屏經驗,肯定有很多不足,這和能力有關,只希望自己不斷進步,不斷完善,如果有熱心腸的“前輩”指導一下,不勝感激!
Android5.0已經出來了,說是這個版本對Android螢幕適配做了很多工作,不過對於我這種慢性子的人,我還是耐心的拭目以待吧,5.0之前已經有很多解析度,剛開始做Android的時候頭都大了,不過慢慢的還是積累了一些適屏的經驗,在此總結一下。
一、使用資源標識
1.解析度(密度)標識符適配
Android的解析度有四大類,以後還會不會更多呢,我也不知道,不過話說分辨到達一定閾值後人眼就不能分辨了吧,畢竟在手機這麼小的螢幕之上,再細緻也就不值得了
低解析度:lhdp(120dp)
普通解析度:mdp(160dp)
高解析度:hdp(240dp)
超高解析度:xhdp(320dp)
超級高解析度:xxhdp(480dp) 這是API Lev 16之後才有的超級解析度
解析度的不同主要影響Android手機片的顯示,如果是一些顏色或者向量背景就沒有影響,比如直接用color或者定義xml類型的drawable做視圖的背景時,結合布局時的一些技巧就不會受解析度的影響了。抽空再總結,話說回來,用上面的資源標識符為圖片提供多種尺寸的方法如下:
將資源標識符用虛線串連到res/drawable之後,例如:
res/drawable-lhdp/:正常圖片尺寸的75%
res/drawable-hdp/:正常圖片尺寸的100%
res/drawable-hhdp/:正常圖片尺寸的150%
res/drawable-xhdp/:正常圖片尺寸的200%
res/drawable-xhdp/:正常圖片尺寸的300%
就像應用程式的啟動圖片,也應該設定多個解析度類型,將36*36(像素),48*48(像素),72*72(像素),96*96(像素),144*144(像素)的icon分別放在以上對應的專案檔目錄下即可實現不同解析度下,顯示相對應的圖片。
2.尺寸資源標識符適配
small:426*320(dp)
normal:470*320(dp)
large:640*480(dp)
xlarge:960*720(dp)
有xxlarge:嗎?
3.平台標識符限定
v4
v9
v11
v14
...
4.橫豎屏標識符限定
land
5.精確限定
w<N>dp:精確限定寬度解析度
h<N>dp:精確限定高度解析度
sw<N>dp:表示這個layout檔案夾下面的布局檔案只有在裝置短邊的最小寬頻為N時才載入。你的裝置是800x480的解析度,那麼這個apk安裝在你的裝置上就會載入 layout-sw480dp裡面的布局檔案。
上面的標識符通常用在res檔案目錄下的drawable,layout和values,例如:layout-550dp-large;drawable-large-mdpi;values-1134*720(大數在前小數在後)
還有就是在AndroidManifest.xml中加上
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true"/>
除了上面的資源標識符限定之外,如果想要更加精確的設定,可以利用values下的dimen,對於要求不是很嚴格的,可以結合Relativeyout,LinearLayout,還有容易被忽視的FrameLayout,設定視圖的寬高(android:layout_width="" android:layout_height="")時使用match或者wrap,之後再設定layout_margin=""或者padding=""屬性來控制距離。
二、Android支援的單位
1.單位
px:像素
in:英寸
mm:毫米
pt:磅(1/72)英寸
dp:與px無關的像素
dip:就是dp
sp:與刻度無關的像素,與dp類似,可根據使用者字型大小的喜好設定縮放
2.單位換算
在標準解析度(160dp)下:
1dp = 1dip = 1px
1pt = 160/72sp
1pt = 1/72英寸
Android適屏