對於不同的螢幕, 除了用螢幕解析度來調整圖案外,
就是使用不同Layout來配製畫面了
1. 首先先回到官網介紹如何支援多螢幕的網頁上
這邊有提到res檔命名的方法, 主要是由
<resources_name>-<qualifier>
resources_name 是res的名稱, 像是 drawable 或是 layout
qualifier 是他的類型, 與resources_name用 - 號連接, 可以連接多個
http://developer.android.com/guide/practices/screens_support.html
2. 接著提到layout內用 layout-small, layout-normal的方法已經過時了
但還是可以用
3. 使用方法就是自己創一個layout-xlarge資料夾
然後把對應的xml檔放進去
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
5. 接著這邊是圖形的對應解析度
drawable-ldpi 當螢幕解析度大約是120dpi使用
drawable-mdpi 當螢幕解析度大約是160dpi使用
drawable-hdpi 當螢幕解析度大約是240dpi使用
drawable-xhdpi 當螢幕解析度大約是320dpi使用
drawable-xxhdpi 當螢幕解析度大約是480dpi使用
drawable-xxxhdpi 當螢幕解析度大約是640dpi使用
drawable-nodpi 這是不會配合螢幕大小去縮放圖去符合,
只會使用當初放多少就是多少
drawable-tvdpi 當螢幕解析度大約是213dpi使用,
當找不到該資料夾時會先使用高解析度的圖縮小到該大小
在沒有才會從低解析度的圖來放大到符合大小
6. 最後介紹表上最後四種
layout-land 當螢幕是水平方向時使用
layout-port 當螢幕是垂直方向時使用
layout-long 這是當螢幕的長寬比大於1.5倍時使用,
舉例來說, 你的螢幕是 480 x 960, 常寬比是 1:2
這時如果資料夾內有layout就會被使用
layout-notlong 顧名思義, 就是長寬比沒超過1.5倍時使用
7. 接著官方有舉資料夾的例子, 可以發現其中一個layout-xlarge-land
夾帶了兩個屬性
8. 由於size的分類方法已經不推薦使用了, 官方提出了另一種依照dp的分法
用法一樣, 只是dp可以由你決定, 方式是sw<N>dp這種類型
舉例來說:
sw600dp 這就是指要 螢幕的寬 和 高最小都要是600dp以上才會使用該資料夾
9. 而第二種是 w<N>dp
舉例來說
w720dp 指當下螢幕的寬必須要超過720dp,
如果螢幕是600x800, 垂直時不符合需求,
但改成水平時變成800x600, 此時就符合了
而最後一種 h<N>dp
則是反過來, 高必須要超過N dp
10. 接著下方有舉一些範例
11. 在資料夾內就是自行創建然後放入相對印的xml檔
12. 最後, 可以藉由在manifest內宣告來規定支援螢幕的大小
不過一般都會被要求通吃, 所以這方法通常比較少用到
除非是要開發特殊的平台