對於不同的螢幕, 除了用螢幕解析度來調整圖案外,

就是使用不同Layout來配製畫面了

 

1. 首先先回到官網介紹如何支援多螢幕的網頁上

這邊有提到res檔命名的方法, 主要是由

<resources_name>-<qualifier>

resources_name 是res的名稱, 像是 drawable 或是 layout

qualifier 是他的類型, 與resources_name用 - 號連接, 可以連接多個

http://developer.android.com/guide/practices/screens_support.html

01.png

 

2. 接著提到layout內用 layout-small, layout-normal的方法已經過時了

但還是可以用

02.png

 

 

3. 使用方法就是自己創一個layout-xlarge資料夾

然後把對應的xml檔放進去

03.png

 

4. 接著來介紹參數, 以Size來區分的參數, 這邊在Android 3.2 後以不推薦使用

layout-small 當系統判斷該螢幕是small size就會從這裡面使用layout

layout-normal 當系統判斷該螢幕是normal size就會從這裡面使用layout

layout-large 當系統判斷該螢幕是large size就會從這裡面使用layout

layout-xlarge 當系統判斷該螢幕是xlarge size就會從這裡面使用layout

04.png

 

5. 接著這邊是圖形的對應解析度

drawable-ldpi 當螢幕解析度大約是120dpi使用

drawable-mdpi 當螢幕解析度大約是160dpi使用

drawable-hdpi 當螢幕解析度大約是240dpi使用

drawable-xhdpi 當螢幕解析度大約是320dpi使用

drawable-xxhdpi 當螢幕解析度大約是480dpi使用

drawable-xxxhdpi 當螢幕解析度大約是640dpi使用

drawable-nodpi 這是不會配合螢幕大小去縮放圖去符合,

只會使用當初放多少就是多少

drawable-tvdpi 當螢幕解析度大約是213dpi使用,

當找不到該資料夾時會先使用高解析度的圖縮小到該大小

在沒有才會從低解析度的圖來放大到符合大小

05.png

 

6. 最後介紹表上最後四種

layout-land 當螢幕是水平方向時使用

layout-port 當螢幕是垂直方向時使用

layout-long 這是當螢幕的長寬比大於1.5倍時使用,

舉例來說, 你的螢幕是 480 x 960, 常寬比是 1:2

這時如果資料夾內有layout就會被使用

layout-notlong 顧名思義, 就是長寬比沒超過1.5倍時使用

06.png

 

7. 接著官方有舉資料夾的例子, 可以發現其中一個layout-xlarge-land

夾帶了兩個屬性

07.png

 

8. 由於size的分類方法已經不推薦使用了, 官方提出了另一種依照dp的分法

用法一樣, 只是dp可以由你決定, 方式是sw<N>dp這種類型

舉例來說:

sw600dp 這就是指要 螢幕的寬 和 高最小都要是600dp以上才會使用該資料夾

08.png

 

9. 而第二種是 w<N>dp

舉例來說

w720dp 指當下螢幕的寬必須要超過720dp,

如果螢幕是600x800, 垂直時不符合需求,

但改成水平時變成800x600, 此時就符合了

而最後一種 h<N>dp

則是反過來, 高必須要超過N dp

09.png

 

10. 接著下方有舉一些範例

10.png

 

11. 在資料夾內就是自行創建然後放入相對印的xml檔

11.png  

 

12. 最後, 可以藉由在manifest內宣告來規定支援螢幕的大小

不過一般都會被要求通吃, 所以這方法通常比較少用到

除非是要開發特殊的平台

 12.png

arrow
arrow

    RX1226 發表在 痞客邦 留言(0) 人氣()