Android官方开发文档Training系列课程中文版:支持不同的设备之支持不同的屏幕
原文地址 : http://android.xsoftlab.net/training/basics/supporting-devices/screens.html#create-bitmaps
Android設備屏幕分為兩個通用的屬性:尺寸和密度。你應該期待應用將會被安裝在屏幕的密度和尺寸都在范圍內的設備上。正因為這樣,你應該包含一些可替換的資源,以便應用在不同尺寸的屏幕和不同密度的屏幕效果最優。
- 有4種普遍屏幕尺寸:small, normal, large, xlarge。、
- 還有4種普遍的屏幕密度:low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)。
為了對不同的屏幕聲明使用不同的布局和圖像,你必須將這些備選資源分開放置,和不同的語言字符串很類似。
這里也應該意識到要考慮屏幕的方向,所以很多應用應該通過布局為不同的方向提供良好的用戶體驗。
創建不同的布局
為了在不同尺寸的屏幕上提升用戶體驗,你應該為想要支持的屏幕尺寸創建唯一的XML布局文件。
每一個布局文件應該保持在合適的資源目錄下,以-< screen_size>為后綴,唯一的大屏幕布局應該被保存在目錄res/layout-large下。
Note: Android為了適配屏幕會拉伸你的布局。所以,不需要關心每一種尺寸的布局元素的絕對尺寸,而應該關心布局之間的結構關系,否則會影響用戶體驗。
下面這個工程為大屏幕提供了一個合適的布局。
MyProject/res/layout/main.xmllayout-large/main.xml文件名稱要盡可能的準確,但是其中的內容為了不同尺寸的屏幕可以不一樣。
一般在代碼中簡單的引用下布局文件:
系統會在應用運行的時候基于設備的屏幕尺寸加載合適的布局文件。更多關于Android如何選擇合適的可用資源請參見:Providing Resources。
像其它工程一樣,這個工程為水平方向提供了適當的布局:
MyProject/res/layout/main.xmllayout-land/main.xml默認情況下,layout/main.xml被用作于默認方向。
如果需要為大屏幕的水平方向屏幕提供布局,那么你需要同時使用large和land標識符:
MyProject/res/layout/ # default (portrait)main.xmllayout-land/ # landscapemain.xmllayout-large/ # large (portrait)main.xmllayout-large-land/ # large landscapemain.xmlNote: Android 3.2及更高的版本對于支持規定的屏幕尺寸有更為先進的方法。它允許你為一定范圍內的屏幕尺寸提供資源,一定范圍包括自小的寬度,高度和密度。這節課不覆蓋這些新知識點,有關更多信息,請參見:Designing for Multiple Screens。
創建不同的位圖
你應該提供合適的位圖資源給每個通用的密度區域:low, medium, high and extra-high density,這可以幫助你在所有的密度下達到良好的圖像效果和性能。
為了產生這些圖像,你應該根據矢量格式的真實資源來為每一種密度提供擴展尺寸:
xhdpi: 2.0 hdpi: 1.5 mdpi: 1.0 (baseline) ldpi: 0.75這里的意思是說,如果你為xhdpi的設備生成了一張200x200的圖像,那么你應該為hdpi生成150x150的圖像,以此推類。
然后,將這些文件放入到合適的圖像資源目錄下:
MyProject/res/drawable-xhdpi/awesomeimage.pngdrawable-hdpi/awesomeimage.pngdrawable-mdpi/awesomeimage.pngdrawable-ldpi/awesomeimage.png任何時候通過@drawable/awesomeimage引用圖像的時候,系統會根據密度選擇合適的位圖圖像。
Note: 低密度ldpi并不總是必須的。當你提供了hdpi的資源,系統會將hdpi資源縮小一半來適應ldpi的屏幕。
更多有關為APP創建icon資源的提示和指南,請參見:Iconography design guide.
總結
以上是生活随笔為你收集整理的Android官方开发文档Training系列课程中文版:支持不同的设备之支持不同的屏幕的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在Activity启动过程中如何任务栈的
- 下一篇: android sina oauth2.