Android適屏

來源:互聯網
上載者:User

標籤: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適屏

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.