Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android官方開發文檔Training系列課程中文版:多樣屏幕之支持不同的屏幕密度

Android官方開發文檔Training系列課程中文版:多樣屏幕之支持不同的屏幕密度

編輯:關於Android編程

原文地址:http://android.xsoftlab.net/training/multiscreen/screendensities.html

這節課將會學習如何通過不同的資源以及獨立的測量單位來支持不同的屏幕密度。

使用密度獨立的像素單位

你必須要避免這麼一個陷阱:在設計布局時,使用了絕對的像素單位來定義距離及尺寸。通過像素來定義布局的尺寸是個問題,因為不同的屏幕含有不同的像素密度,所以在不同的設備上使用同一像素長度會造成不同的物理尺寸。因此在指定尺寸時,應該總是使用dp或者sp為單位。dp是一種密度獨立的像素單位,在160dpi時與像素的物理尺寸正好吻合(也就是說160dpi的屏幕dp正好等於sp)。sp同樣也是一種基准單位,但是它一種可伸縮的文本尺寸單位,所以應當在定義文本尺寸時使用該單位(絕不要在布局上使用該單位)。

比如說,在指定兩個View之間的空隙時,應該使用dp,而不是px:

在指定文本大小時,總是使用sp:

提供備選位圖

因為Android運行於種類繁多的設備上,所以應當為普遍的密度范圍提供相應的位圖資源:low, medium, high及extra-high密度。這有助於提升所有屏幕密度的物理效果及性能。

為了產生這些位圖,應當通過原生資源生成多種密度的圖像:

xhdpi: 2.0 hdpi: 1.5 mdpi: 1.0 (基准線) ldpi: 0.75

這意味著如果為xhdpi的設備生成了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時,系統會基於屏幕的dpi選擇合適的位圖圖像。

最後將啟動圖標放入到mipmap/文件夾下:

res/...
    mipmap-ldpi/...
        finished_launcher_asset.png
    mipmap-mdpi/...
        finished_launcher_asset.png
    mipmap-hdpi/...
        finished_launcher_asset.png
    mipmap-xhdpi/...
        finished_launcher_asset.png
    mipmap-xxhdpi/...
        finished_launcher_asset.png
    mipmap-xxxhdpi/...
        finished_launcher_asset.png

Note: 應當將所有的啟動圖標放入到res/mipmap-[density]/文件夾下,而不是drawable/文件夾中,這樣可以確保桌面APP使用了最佳的分辨率圖標。有關更多信息,請參見Managing Projects Overview。

有關更多創建圖標資源的提示與指南,請參見Icon Design Guidelines.

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