【android官方文檔】android 屏幕適配 支持不同的屏幕

              如轉載請註明出處http://blog.csdn.net/ethanchiu/article/details/19611537

支持不同的屏幕

     android將設備屏幕歸納爲兩種:尺寸和密度。你要知道你安裝的app是在你設備屏幕的範圍內的。這樣,app需要包含些資源文件來優化app在不同密度尺寸的屏幕下的外觀。

一般有四種尺寸: small, normal, large, xlarge
和四種密度low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)
     爲了給不同的屏幕適配,應該使用不同的佈局和圖片,你必須將這些可選的資源放到不同的文件夾下,類似於你設置不同語言。

     需要意識到屏幕的方向(水平或者垂直)是不同的屏幕尺寸,所以許多apps需要修訂佈局來優化不同方向的用戶體驗。


創建不同的佈局

 

    爲了優化在不同屏幕尺寸下的用戶體驗,你需要創建不同的佈局xml文件。每一個佈局文件需要保存在合適的資源文件夾下,按照 -<screen_size> 作爲後綴。比如,一個大屏幕的佈局需要放在res/layout-large/文件夾下。

     注意:爲了適應不同屏幕,android自動放縮佈局。因此,不需要擔心不同屏幕上的佈局的UI元素的絕對值,應該把重點放在影響用戶體驗的佈局結構上(比如重要view相對於兄弟view的大小和位置)。
     比如,這個項目包含了默認的佈局和一個可選的大屏幕布局:
MyProject/
    res/
        layout/
            main.xml
        layout-large/
            main.xml
     文件名字是一樣的,但是裏面的內容是不一樣的。

     在你app中的簡單引用
@Override
 protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.main);
}
     系統從合適的文件夾中讀取了佈局文件。更多信息看Providing Resources 。
     另一個例子,有一個項目包含水平方向的佈局文件:
MyProject/
    res/
        layout/
            main.xml
        layout-land/
            main.xml
     默認的,layout/main.xml文件用在垂直方向的佈局。

     如果需要給水平方向提供特殊的佈局,並且在大屏幕上,就需要使用large 和 land  標示符:
MyProject/
    res/
        layout/              # default (portrait)
            main.xml
        layout-land/         # landscape
            main.xml
        layout-large/        # large (portrait)
            main.xml
        layout-large-land/   # large landscape
            main.xml

注意:Android 3.2 即以上的版本提供一個定義屏幕尺寸的先進方法,這個方法可以給最小寬度和高度指定資源文件。本問不包括這個技術,更多信息請看Designing for Multiple Screens


創建不同的Bitmap圖片

 

    你需要提供廣義上不同密度的圖片: low, medium, high and extra-high 。這會幫你獲得好的圖形質量和性能。

     爲了生成這些圖片,你需要用矢量格式的原生資源,併爲每種密度生成圖片:
xhdpi: 2.0
hdpi: 1.5
mdpi: 1.0 (baseline)
ldpi: 0.75
     這就意味着要給xhdip設備生成200x200的圖片,同樣的hdpi是150x150,mdpi是100x100,ldpi是75x75。
MyProject/
    res/
        drawable-xhdpi/
            awesomeimage.png
        drawable-hdpi/
            awesomeimage.png
        drawable-mdpi/
            awesomeimage.png
        drawable-ldpi/
            awesomeimage.png
     任何時候引用@drawable/awesomeimage ,系統會根據屏幕密度選擇合適的圖片。

注意:ldpi資源不總是必要的。當你提供了hdpi資源,系統會壓縮一半,來適應ldpi的屏幕。

     更多創建圖標的注意點和知道,參看Iconography design guide.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章