Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android學習路線(十八)支持不同設備——支持不同的屏幕

Android學習路線(十八)支持不同設備——支持不同的屏幕

編輯:關於Android編程

Android系統使用兩個普通屬性:尺寸和密度,來對設備屏幕進行分類。你需要先預測你的應用將會在什麼樣屏幕的設備上安裝,包括屏幕尺寸和密度。這樣的話,你就需要提供一些可選的資源類讓你的應用在不同屏幕的設備上有最佳的展示。

  • 有四種普遍的尺寸:small, normal, large, xlarge
  • 還有四種普遍的密度:low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)

    要為不同的屏幕聲明不同的布局和圖片,你需要讓這些可選的資源放在不同的目錄下,這和如何支持多語言的做法類似。

    同樣要考慮到在不同屏幕尺寸下的屏幕方向配置,因此很多應用通在不同的方向上改變不同的布局來實現最佳的用戶體驗。

    創建不同的布局


    讓你的應用在不同的屏幕尺寸上有好的用戶體驗,你應該為每個你想支持的屏幕尺寸創建一個唯一的XML布局文件。每個布局文件應該被存放到適當的資源目錄下,目錄名以 - 為後綴。例如,一個存放大屏幕的布局目錄的名稱是res/layout-large/

    提示: Android系統會自動伸縮布局來正確的適配屏幕。因此,你不需要擔心你為不同布局設計的UI元素的實際尺寸,你要注意的是影響用戶體驗的布局結構(例如重要布局相對與它旁邊布局的尺寸和位置)。

    例如,這個項目包括一個默認的布局目錄以及是用於大屏幕的布局目錄:

    MyProject/
        res/
            layout/
                main.xml
            layout-large/
                main.xml
    

    文件名一定要完全相同,但是它們的內容要不一樣,用來為不同的屏幕尺寸提供最佳的UI展示。

    在應用中簡單地引用布局:

    @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 文件是被豎屏使用的。

    如果你想要為你的應用指定橫屏時的布局,包括在大屏幕的設備上,那麼你需要同時使用largeland 限制:

    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。

    創建不同的圖片


    你應該為每個通用密度的設備提供能夠正確縮放的圖片資源:low, medium, high and extra-high 密度。這能幫助你在所有屏幕密度的設備上獲得更高的圖片質量以及更好的性能。

    要生成這些圖片,你首先需要使用下面的尺寸規模為你的原生資源的矢量資源為不同的屏幕密度生成圖片:

    • xhdpi: 2.0
    • hdpi: 1.5
    • mdpi: 1.0 (baseline)
    • ldpi: 0.75

      這表示如果你為xhdpi的設備生成一個200x200 的圖片,你就應該為hdpi的設備生成150x150 的相同資源,mdpi設備100x100,ldpi設備75x75。

      然後將這些文件放在適當的drawable資源目錄下:

      MyProject/
          res/
              drawable-xhdpi/
                  awesomeimage.png
              drawable-hdpi/
                  awesomeimage.png
              drawable-mdpi/
                  awesomeimage.png
              drawable-ldpi/
                  awesomeimage.png
      

      你每次引用@drawable/awesomeimage的時候,系統都會根據屏幕密度選擇適當的圖片。

      提示: 低分辨率(ldpi) 資源並不是必要的。當你提供了hdpi的資源時,系統會將資源縮小一半來正確的適應ldpi的屏幕。

      更多關於為應用創建icon資源的向導,請參閱Iconography design guide。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved