Dev Guide/Best Practices/Supporting Multiple Screens

來源:互聯網
上載者:User


官網地址:http://docs.huihoo.com/android/2.2/guide/practices/screens_support.html


這篇有點過時了,網路上應該有最新的了。



支援多螢幕

     Android被設計成可以運行在各種提供一系列的螢幕尺寸和解析度的裝置。對於應用程式,該平台提供一致的跨裝置環境和處理許多複雜的應用程式UI適應在螢幕上顯示。同時,該平台公開的API,讓應用程式開發人員對他們的應用程式的使用者介面的精確控制,當特定的螢幕尺寸和解析度上顯示。

     本文檔介紹了螢幕平台提供的支援功能,以及如何你應用程式中使用它們。這裡所描述的做法,您可以輕鬆地建立一個應用程式正確顯示所有支援的裝置螢幕上,你可以作為一個單一的部署到任何 APK 。

     如果你已經制定和公布為Android 1.5或更早版本的應用程式,你應該閱讀此檔案,並考慮如何您可能需要適應您的應用程式,提供不同的螢幕和正在啟動並執行Android 1.6或更高的新裝置上正確顯示。在大多數情況下,只有輕微的調整是必要的,但是你要確保測試您的應用程式在所有支援的螢幕。

     在Android 2.2開始,該平台包括支援額外的高密度顯示屏(xhdpi),並在Android 2.3開始,該平台包括支援額外的大螢幕 (XLARGE )。如果您已經遵循本文檔中的指導,以支援所有其他螢幕類型,你應該考慮提供xhdpi XLARGE螢幕額外的支援。

     特別是,如果您有一個現有的應用程式,你想在小螢幕上提供(如QVGA),或您想提供更好的支援超大螢幕,有關如何為更多的資訊, 請參閱舊的應用程式的策略要做到這一點。

------------------------------------------------------------------------------------------------------------------------------

螢幕支援概述

     以下各節提供android平台支援多螢幕的概述,包括介紹在文檔和api使用的術語和概念,總結有關平台支援的螢幕配置,api和底層螢幕相容性功能的概述。

術語和概念

螢幕尺寸

      實際的物理尺寸,測量螢幕的對角線。

      為了簡單起見,android將所有物理尺寸分為四個廣義的大小:小,正常,大,特大。應用程式可以提供這四種尺寸的自訂布局 —— 平台透明處理在物理尺寸布局的渲染。

長寬比

    螢幕的物理寬度和高度比關係。應用程式可以提供特定長寬比的布局資源,使用long預選賽long和notlong。

解析度

     在螢幕上的物理像素總數。請注意,雖然解析度通常表示為寬x高,但是解析度並沒有提供特殊的長寬比。在android,應用程式不工作於解析度。

密度

     根據螢幕解析度,在物理螢幕的寬度和高度的像素的蔓延。密度較低的螢幕具有較少的蔓延,密度較高的螢幕具有較高的蔓延,有時顯著 - 在相同面積的像素傳播。因為,其他條件相同的情況下,一個UI元素(如按鈕)的高度和寬度定義成螢幕像素,在低密度將顯示的很大,而高密度將顯示的很小。

    為了簡單起見,android將螢幕密度分為四個廣義密度低,中型,大型和特大型。應用程式可以提供這些密度的自訂資源 - 平台處理任何必要的資源,縮放,向上或向下,以滿足特定的螢幕密度。

密度無關的像素(DP)

     應用程式可以使用一個虛擬像素單元定義自己的UI,用密度無關的方式表達尺寸和位置。

     密度無關的像素相當於在160 dpi螢幕上的一個物理像素,平台所承擔的基準密度(如在本文檔後面描述)。在運行時,該平台透明地處理任何需要的DP單位的縮放,根據實際使用中的螢幕密度。DP單位轉換為螢幕像素很簡單:pixels
= dps *(density / 160),例如,240 dpi螢幕上,1 DP就等於1.5物理像素。強烈建議使用DP單位來定義應用程式的UI,確保不同的螢幕上顯示你的使用者介面的適當方式。

螢幕支援範圍

    從Android 1.6開始,該平台提供多個螢幕尺寸和解析度的支援,反映了許多新的平台上啟動並執行裝置的類型和尺寸。如果您正在開發的應用程式將運行在Android
1.6或更高版本,您可以使用Android平台的相容性功能,以確保您的應用程式的UI呈現能夠正常支援的螢幕尺寸和解析度的範圍。

     為了簡化開發人員設計多個裝置的使用者介面,並允許更多的裝置在不影響應用的情況下參與,平台劃分的實際支援的螢幕尺寸和解析度的範圍:

  • 四個廣義的大小:小 ,正常 , ,和XLARGE
  • 四個廣義密度:ldpi(),mdpi(中型),hdpi(高),並xhdpi(特高)

    註:xhdpi密度類別是在Android 2.2(API等級8)。XLARGE尺寸類別是在Android 2.3(API等級9)。

     應用程式可以提供任何的四個廣義大小的自訂資源(主要是布局),並能提供任何的四個廣義密度的資源(主要是映像drawables)。應用程式不需要工作與實際的物理裝置螢幕大小或密度。在運行時,該平台處理載入正確的大小或密度資源,根據當前裝置螢幕上的廣義的大小或密度,並適應螢幕的實際像素圖。

     廣義的大小/密度配置都圍繞著一個被分配一個normal 的大小密度mdpi(中)的基準配置。為Android 1.5或更早版本編寫的所有應用程式(按定義)為基準的HVGA螢幕上的T - Mobile G1和類似的裝置大小是normal 密度是mdpi。

     每一個廣義的螢幕配置,跨越一系列實際的螢幕密度和物理尺寸。例如,這意味著多台裝置使用normal的螢幕尺寸將提供略有不同的實際尺寸或寬高比的螢幕。同樣,多台裝置使用hdpi 的螢幕密度將提供略有不同的像素密度。android平台將這些不同抽象,但是
- 應用程式可以提供使用者介面設計為廣義的大小和密度,並讓系統處理的UI當前裝置上的螢幕,根據其特點的實際呈現。

      

     圖1說明Android平台的實際螢幕密度和廣義的密度和大小配置。

    雖然該平台可以讓您的應用提供定製的各種大小和密度配置資源,你不需要做編寫自訂代碼或提供自訂的螢幕大小和密度的每個組合資源。該平台提供了強大的相容特性,在下面的章節描述,可以處理任何裝置的螢幕上呈現您的應用程式的大部分工作,正確執行您的應用程式的UI。 欲瞭解更多有關如何實施正確呈現在裝置螢幕和平台版本的UI的的詳細資料,請參閱螢幕獨立的最佳實務

     為了協助您測試您的應用程式,Android SDK中包含模擬器皮膚,複製您的應用程式可能啟動並執行實際裝置螢幕的大小和密度。您還可以修改模擬器外觀的預設大小和密度,以任何特定的螢幕複製的特點。

     表1模擬器樣機的螢幕尺寸和密度,包括在Android SDK。


Low density    (120), ldpi  Medium density (160), 
 mdpi                  
High density (240),  hdpi Extra high density 
(320),   xhdpi
Small screen QVGA (240x320)              
Normal screen WQVGA400 (240x400)
WQVGA432 (240x432)
HVGA (320x480) WVGA800 (480x800)
WVGA854 (480x854)
 
Large screen   WVGA800* (480x800)
WVGA854* (480x854)
   
Extra Largescreen        

   *為了類比此配置中,指定了160個自訂密度,在建立的AVD,使用WVGA800或WVGA854皮膚。

     概述高(hdpi),中期(mdpi),低(ldpi)在Android系統的裝置可用密度螢幕的相對數,請看螢幕尺寸和密度儀表板。

Android如何支援多個螢幕

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.