Android 支援不同的螢幕 Supporting Different Screens

來源:互聯網
上載者:User
Supporting Different ScreensPREVIOUSNEXT

    THIS LESSON TEACHES YOU TO
  1. Create Different Layouts
  2. Create Different Bitmaps
YOU SHOULD ALSO READ
  • Designing for Multiple Screens
  • Supporting Multiple Screens
  • Iconography design guide

android裝置的螢幕在尺寸和像素密度方面不同,你的應用會在不同的尺寸或者像素密度的android裝置上運行,因此,應該添加一些替代的資源,以便你的應用在不同尺寸和像素密度的裝置上都有優良的介面。

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

為不同螢幕申明的不同的布局檔案和圖片,應當分別放在不同的目錄中,就如同不同語言的字串的做法一樣。

另外,還應該注意螢幕的方向(橫屏、豎屏)也要考慮在內,因此許多應用應該修改布局檔案以便在不同的螢幕方向上都有良好的使用者體驗。

建立不同的布局檔案

為了保證你的應用在不同螢幕尺寸上表現良好,你應該為每一個螢幕尺寸設計布局,每個布局檔案儲存在適當的資來源目錄下,以-<screen_size>做尾碼。例如:為large 螢幕設計的布局檔案儲存在res/layout-large/下。

Note: android可以自動的縮放布局以完全適應你的螢幕,因此,為不同螢幕設計布局檔案不需要考慮絕對的UI元素的尺寸,而應該關注影響使用者體驗的布局結構,例如重要view的大小和它的位置。

例如,這個工程包括一個預設的布局檔案和large螢幕的替代布局檔案:

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

這些檔案的名字必須完全相同,但是內容不必。為了為不同尺寸的螢幕提供合適的UI。

像一般情況一樣,在你的app中簡單的使用布局檔案名稱

@Override protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.main);}

系統根據裝置的尺寸選擇使用合適目錄下的布局檔案。更多有關係統如何選擇正確的資源請參見
Providing Resources guide.

另一個例子,這個工程為橫屏提供了一個布局

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

預設的,布局檔案 layout/main.xml用於豎屏。

如果你想要為一個large螢幕提供豎屏的布局檔案,那麼這個布局檔案需要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

Note: Android3.2以及之後的版本,提供了一個定義螢幕尺寸的先進的函數,使用獨立於密度的像素為UI設定最小的寬和高,實現為不同尺寸的螢幕指定資源。

這一節不涉及這個新的技術,更多資訊參見 Designing for Multiple Screens.

建立不同的位元影像

應當為不同密度的螢幕提供縮放合適的位元影像資源: low, medium, high 和extra-high 密度. 這樣可以讓你的應用在不同密度的螢幕上都有良好的圖形品質和效能。

建立這些圖片,你應當首先建立向量格式的原始圖片資源,然後使用以下參數縮放,為每個密度的螢幕建立圖片。

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

這就意味這如果你為xhdpi裝置建立了一個200x200的圖片,就應當為hdpi建立150x150的圖片,為mdpi建立100 x100的圖片,為ldpi的裝置建立75x75 的圖片,

然後,將這些圖片檔案儲存在合適的drawable資來源目錄下:

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

當你使用 @drawable/awesomeimage時,系統根據螢幕的密度選擇合適的圖片。

Note: ldpi的資源並不是必需的。如果提供了hdpi的資源,系統會將hdpi的資源縮小一半以匹配ldpi的螢幕。

更多參見 Iconography design guide.

http://developer.android.com/training/multiscreen/screensizes.html

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.