多解析度支援
在設計之初,android
螢幕 尺寸
螢幕的物理尺寸,以螢幕的對角線長度作為依據(比如 2.8寸, 3.5寸)。
簡而言之, android把所有的螢幕尺寸簡化為三大類:大,正常,和小。
程式可以針對這三種尺寸的螢幕提供三種不同的布局方案,然後系統會負責把你的布局方案以合適的方式渲染到對應的螢幕上,這個過程是不需要程式設計師用**來干預的。
螢幕長寬比
螢幕的物理長度與物理寬度的比例。程式可以為制定長寬比的螢幕提供制定的素材,只需要用系統提供的資源分類符 long和 notlong。
解析度
螢幕上擁有的畫素的總數。注意,雖然大部分情況下解析度都被表示為「寬度×長度」,但解析度並不意味著螢幕長寬比。在 android系統中,程式一般並不直接處理解析度。
密度
以螢幕解析度為基礎,沿螢幕長寬方向排列的畫素。
密度較低的螢幕,在長和寬方向都只有比較少的畫素,而高密度的螢幕通常則會有很多——甚至會非常非常多——畫素排列在同一區域。螢幕的密度是非常重要的,舉個例子,長寬以畫素為單位定義的介面元素(比如乙個按鈕),在低密度的螢幕上會顯得很大,但在高密度的螢幕上則會顯得很小。
密度無關的畫素( dip
) 指乙個抽象意義上的畫素,程式用它來定義介面元素。它作為乙個與實際密度無關的單位,幫助程式設計師構建乙個布局方案(介面元素的寬度,高度,位置)。
乙個與密度無關的畫素,在邏輯尺寸上,與乙個位於畫素密度為 160dpi的螢幕上的畫素是一致的,這也是 android平台所假定的預設顯示裝置。在執行的時候,平台會以目標螢幕的密度作為基準,「透明地」處理所有需要的 dip縮放操作。要把密度無關畫素轉換為螢幕畫素,可以用這樣乙個簡單的公式: pixels = dips * (density / 160)。舉個例子,在 dpi為 240的螢幕上, 1個 dip等於 1.5個物理畫素。我們強烈推薦 你用 dip來定義你程式的介面布局,因為這樣可以保證你的 ui在各種解析度的螢幕上都可以正常顯示。
支援的螢幕解析度範圍
1.5及更早版本的 android系統,在設計的時候假定系統只會執行在一種解析度的裝置上—— hvga( 320× 480)解析度,尺寸為 3.2寸。由於系統只能工作在一種螢幕上,開發人員就可以針對那個螢幕來編寫自己的程式,而無需去考慮程式在其他螢幕上的顯示問題。
但自從 android 1.6以來,系統引入了對多種尺寸、多種解析度螢幕的支援,以此滿足擁有各種配置的新平台的執行需求。這就意味著開發人員在針對 android 1.6或更新版系統開發程式的時候,需要為自己的程式在多種解析度的螢幕上良好顯示作出額外的設計。
為了簡化程式設計師面在對各種解析度時的困擾,也為了具備各種解析度的平台都可以直接執行這些程式, android平台將所有的螢幕以密度和解析度為分類方式,各自分成了三類:
·三種主要的尺寸:大,正常,小;
·三種不同的密度:高( hdpi),中( mdpi)和低( ldpi)。
如果需要的話,程式可以為各種尺寸的螢幕提供不同的資源(主要是布局),也可以為各種密度的螢幕提供不同的資源(主要是點陣圖)。除此以外,程式不需要針對螢幕的尺寸或者密度作出任何額外的處理。在執行的時候,平台會根據螢幕本身的尺寸與密度特性,自動載入對應的資源,並把它們從邏輯畫素( dip,用於定義介面布局)轉換成螢幕上的物理畫素。
下表列出了 android平台支援的螢幕中一些比較常用的型號,並顯示了系統是如何把它們分類到不同的螢幕配置裡的。有些螢幕解析度並不在下面的列表上,但系統仍會把它們歸入下列的某乙個型別中。
低密度( 120), ldpi
中密度( 160), mdpi
高密度( 240), hdpi
小 螢幕
· qvga( 240× 320), 2.6~ 3.0寸
普通 螢幕
· wqvga( 240× 400), 3.2~ 3.5寸
· fwqvga( 240× 432), 3.5~ 3.8寸
· hvga( 320× 480), 3.0~ 3.5寸
· wvga( 480× 800), 3.3~ 4.0寸
· fwvga( 480× 854), 3.5~ 4.0寸
大 螢幕
· wvga( 480× 800), 4.8~ 5.5寸
· fwvga( 480× 854), 5.0~ 5.8寸
如上表所示,所有解析度的螢幕,都圍繞在基準螢幕 周圍,而基準螢幕在分類中,為「正常」尺寸,與「中」密度。之所以用 hvga螢幕作為基準螢幕,是因為所有針對 android 1.5或更早的程式都是針對這片螢幕所寫的(因為只支援這一片),比如 t-mobile g1。
雖然系統支援上面 9種不同配置的螢幕,但你並不一定需要為它們都提供各自不同的資源。系統已經提供了足夠魯棒(就是在各種惡劣環境下正常工作,對環境變化不敏感)的相容特性,用於在各種不同的螢幕上良好顯示你的程式。這在下面的文件中會詳細描述,如果你需要更多的資料,請檢視「與螢幕無關的最佳實踐」。
android多解析度支援
螢幕尺寸 螢幕的物理尺寸,以螢幕的對角線長度作為依據 比如 2.8寸,3.5寸 簡而言之,android把所有的螢幕尺寸簡化為三大類 大,正常,和小。程式可以針對這三種尺寸的螢幕提供三種不同的布局方案,然後系統會負責把你的布局方案以合適的方式渲染到對應的螢幕上,這個過程是不需要程式設計師用 來干預的...
讓android支援多螢幕解析度
android 系統就被設計為乙個可以在多種不同解析度的裝置上執行的作業系統。對於應用程式來說,系統平台向它們提供的是乙個穩定的,跨平台的執行環境,而關於如何將程式以正確的方式顯示到它所執行的平台上所需要的大部分技術細節,都由系統本身進行了處理,無需程式的干預。當然,系統本身也為程式提供了一系列ap...
Android解析度常識 多解析度適配
螢幕大小 以螢幕對角線的物理長度來衡量螢幕的大小 解析度 螢幕中所有物理畫素點數。如1920x1080,就表示寬方向有1920個畫素,高方向有1080個畫素,整個螢幕有2073600個畫素。螢幕密度 dpi dots per inch 即畫素密度,每英吋面積上存在多少個畫素。160dpi表示單位面積...