精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Android適配難題全面總結

移動開發(fā) Android
Android 可在各種具有不同屏幕尺寸和密度的設備上運行。對于 應用,Android 系統(tǒng)在不同設備中提供一致的開發(fā)環(huán)境, 可以處理大多數(shù)工作,將每個應用的用戶界面調(diào)整為適應其顯示的 屏幕。同時,系統(tǒng)提供 API,可用于控制 應用適用于特定屏幕尺寸和密度的 UI,以針對 不同屏幕配置優(yōu)化 UI 設計。

支持多種屏幕

Android 可在各種具有不同屏幕尺寸和密度的設備上運行。對于 應用,Android 系統(tǒng)在不同設備中提供一致的開發(fā)環(huán)境, 可以處理大多數(shù)工作,將每個應用的用戶界面調(diào)整為適應其顯示的 屏幕。同時,系統(tǒng)提供 API,可用于控制 應用適用于特定屏幕尺寸和密度的 UI,以針對 不同屏幕配置優(yōu)化 UI 設計。例如,您可能想要不同于手機 UI 的 平板電腦 UI。

雖然系統(tǒng)為使您的應用適用于不同的屏幕, 會進行縮放和大小調(diào)整,但您應針對不同的屏幕尺寸和密度優(yōu)化 應用。這樣可以最大程度優(yōu)化所有設備上的用戶體驗,用戶會 認為您的應用實際上是專為他們的設備而設計,而不是 簡單地拉伸以適應其設備屏幕。

按照本文檔所述的做法,您可以創(chuàng)建 正常顯示的應用,然后使用 一個 .apk 文件在所有支持的屏幕配置中提供優(yōu)化的用戶體驗。

注:本文檔中的信息假設您的 應用設計用于 Android 1.6(API 級別 4)或更高級別。

另請注意,Android 3.2 引入了新的 API,可用于更 精確地控制應用用于不同屏幕尺寸的布局資源。如果您要開發(fā)針對平板電腦優(yōu)化的應用,這些新 功能特別重要。

屏幕支持概覽

本節(jié)概述 Android 對多種屏幕的支持,包括: 本文檔和 API 中所用術語和概述的簡介、 系統(tǒng)支持的屏幕配置摘要,以及 API 和基本 屏幕兼容性功能的概述。

術語和概念

屏幕尺寸

按屏幕對角測量的實際物理尺寸。

為簡便起見,Android 將所有實際屏幕尺寸分組為四種通用尺寸:小、 正常、大和超大。

屏幕密度

屏幕物理區(qū)域中的像素量;通常稱為 dpi(每英寸 點數(shù))。例如, 與“正常”或“高”密度屏幕相比,“低”密度屏幕在給定物理區(qū)域的像素較少。

為簡便起見,Android 將所有屏幕密度分組為六種通用密度: 低、中、高、超高、超超高和超超超高。

方向

從用戶視角看屏幕的方向,即橫屏還是 豎屏,分別表示屏幕的縱橫比是寬還是高。請注意, 不僅不同的設備默認以不同的方向操作,而且 方向在運行時可隨著用戶旋轉設備而改變。

分辨率

屏幕上物理像素的總數(shù)。添加對多種屏幕的支持時, 應用不會直接使用分辨率;而只應關注通用尺寸和密度組指定的屏幕 尺寸及密度。

密度無關像素 (dp)

在定義 UI 布局時應使用的虛擬像素單位,用于以密度無關方式表示布局維度 或位置。

密度無關像素等于 160 dpi 屏幕上的一個物理像素,這是 系統(tǒng)為“中”密度屏幕假設的基線密度。在運行時,系統(tǒng) 根據(jù)使用中屏幕的實際密度按需要以透明方式處理 dp 單位的任何縮放 。dp 單位轉換為屏幕像素很簡單: px = dp * (dpi / 160)。 例如,在 240 dpi 屏幕上,1 dp 等于 1.5 物理像素。在定義應用的 UI 時應始終使用 dp 單位 ,以確保在不同密度的屏幕上正常顯示 UI。

支持的屏幕范圍

從 Android 1.6(API 級別 4)開始,Android 支持多種屏幕尺寸和密度,反映設備可能具有的多種不同屏幕配置。 您可以使用 Android 系統(tǒng)的功能優(yōu)化應用在各種屏幕配置下的用戶界面 ,確保應用不僅正常渲染,而且在每個屏幕上提供 最佳的用戶體驗。

為簡化您為多種屏幕設計用戶界面的方式,Android 將實際屏幕尺寸和密度的范圍 分為:

四種通用尺寸:小、正常、 大 和超大

注:從 Android 3.2(API 級別 13)開始,這些尺寸組 已棄用,而采用根據(jù)可用屏幕寬度管理屏幕尺寸的 新技術。如果為 Android 3.2 和更高版本開發(fā),請參閱聲明適用于 Android 3.2 的平板電腦布局以了解更多信息。

六種通用的密度:

ldpi(低)~120dpi

mdpi(中)~160dpi

hdpi(高)~240dpi

xhdpi(超高)~320dpi

xxhdpi(超超高)~480dpi

xxxhdpi(超超超高)~640dpi

通用的尺寸和密度按照基線配置(即正常尺寸和 mdpi(中)密度)排列。 此基線基于第一代 Android 設備 (T-Mobile G1) 的屏幕配置,該設備采用 HVGA 屏幕(在 Android 1.6 之前,這是 Android 支持的唯一屏幕配置)。

每種通用的尺寸和密度都涵蓋一個實際屏幕尺寸和密度范圍。例如, 兩部都報告正常屏幕尺寸的設備在手動測量時,實際屏幕尺寸和 高寬比可能略有不同。類似地,對于兩臺報告 hdpi 屏幕密度的設備,其實際像素密度可能略有不同。 Android 將這些差異抽象概括到應用,使您可以提供為通用尺寸和密度設計的 UI,讓系統(tǒng)按需要處理任何最終調(diào)整。 圖 1 說明不同的尺寸和密度如何粗略歸類為不同的尺寸 和密度組。   

Android 如何將實際尺寸和密度粗略地 對應到通用的尺寸和密度 

圖 1. 說明 Android 如何將實際尺寸和密度粗略地 對應到通用的尺寸和密度(數(shù)據(jù)并不精確)。

在為不同的屏幕尺寸設計 UI 時,您會發(fā)現(xiàn)每種設計都需要 最小空間。因此,上述每種通用的屏幕尺寸都關聯(lián)了系統(tǒng)定義的最低 分辨率。這些最小尺寸以“dp”單位表示 — 在定義布局時應使用相同的單位 — 這樣系統(tǒng)無需擔心屏幕密度的變化。

超大屏幕至少為 960dp x 720dp

大屏幕至少為 640dp x 480dp

正常屏幕至少為 470dp x 320dp

小屏幕至少為 426dp x 320dp

注:這些最小屏幕尺寸在 Android 3.0 之前未正確定義,因此某些設備在正常屏幕與大屏幕之間變換時可能會出現(xiàn)分類錯誤的情況。 這些尺寸還基于屏幕的物理分辨率,因此設備之間可能不同 — 例如,具有系統(tǒng)狀態(tài)欄的 1024×720 平板電腦因系統(tǒng)狀態(tài)欄要占用空間,所以可供 應用使用的空間要小一點。

要針對不同的屏幕尺寸和密度優(yōu)化應用的 UI,可為任何通用的尺寸和密度提供 替代 資源。通常,應為某些不同的屏幕尺寸提供替代布局,為不同的屏幕密度提供替代位圖圖像。 在運行時,系統(tǒng)會根據(jù)當前設備屏幕的通用 尺寸或密度對應用使用適當?shù)馁Y源。

無需為屏幕尺寸和 密度的每個組合提供替代資源。系統(tǒng)提供強大的兼容性功能,可處理在任何設備屏幕上 渲染應用的大多數(shù)工作,前提是您已經(jīng)使用 可以適當調(diào)整大小的技術實現(xiàn) UI(如下面的最佳做法所述)。

注:定義設備通用屏幕 尺寸和密度的特性相互獨立。例如,WVGA 高密度屏幕 被視為正常尺寸屏幕,因為其物理尺寸與 T-Mobile G1 (Android 的第一代設備和基線屏幕配置)大約相同。另一方面,WVGA 中密度 屏幕被視為大尺寸屏幕。雖然它提供相同的分辨率(相同的 像素數(shù)),但 WVGA 中密度屏幕的屏幕密度更低,意味著每個像素 實際上更大,因此整個屏幕大于基線(正常尺寸)屏幕。

密度獨立性

應用顯示在密度不同的屏幕上時,如果它保持用戶界面元素的物理尺寸(從 用戶的視角),便可實現(xiàn)“密度獨立性” 。

保持密度獨立性很重要,因為如果沒有此功能,UI 元素(例如 按鈕)在低密度屏幕上看起來較大,在高密度屏幕上看起來較小。這些 密度相關的大小變化可能給應用布局和易用性帶來問題。圖 2 和 3 分別顯示了應用不提供密度獨立性和 提供密度獨立性時的差異。   

不支持不同密度的示例應用在低、中、高密度屏幕上的顯示情況 

圖 2. 不支持不同密度的示例應用在低、中、高密度屏幕上的顯示情況。 

良好支持不同密度(密度獨立)的示例應用在低、中、高密度屏幕上的顯示情況。 

圖 3. 良好支持不同密度(密度獨立)的示例應用在低、中、高密度屏幕上的顯示情況。

Android 系統(tǒng)可幫助您的應用以兩種方式實現(xiàn)密度獨立性:

系統(tǒng)根據(jù)當前屏幕密度擴展 dp 單位數(shù)

系統(tǒng)在必要時可根據(jù)當前屏幕 密度將可繪制對象資源擴展到適當?shù)拇笮?/p>

在圖 2 中,文本視圖和位圖可繪制對象具有以像素(px 單位)指定的尺寸,因此視圖的物理尺寸在低密度屏幕上更大,在高密度 屏幕上更小。這是因為,雖然實際屏幕尺寸可能相同,但高密度屏幕 的每英寸像素更多(同樣多的像素在一個更小的區(qū)域內(nèi))。在圖 3 中,布局 尺寸以密度獨立的像素(dp 單位)指定。由于 密度獨立像素的基線是中密度屏幕,因此具有中密度屏幕的設備看起來 與圖 2 一樣。但對于低密度和高密度屏幕,系統(tǒng) 將分別增加和減少密度獨立像素值,以適應 屏幕。

大多數(shù)情況下,確保應用中的屏幕獨立性很簡單,只需以適當?shù)拿芏泉毩⑾袼?dp 單位)或 “wrap_content” 指定所有 布局尺寸值。系統(tǒng)然后根據(jù)適用于當前屏幕密度的縮放比例適當?shù)乜s放位圖可繪制對象,以 適當?shù)拇笮★@示。

但位圖縮放可能導致模糊或像素化位圖,您或許已經(jīng)在上面的屏幕截圖中 發(fā)現(xiàn)了這些問題。為避免這些偽影,應為 不同的密度提供替代的位圖資源。例如,應為高密度 屏幕提供分辨率較高的位圖,然后系統(tǒng)對中密度 屏幕將使用這些位圖,而無需調(diào)整位圖大小。下一節(jié)詳細說明如何為 不同的屏幕配置提供替代資源。

如何支持多種屏幕

Android 支持多種屏幕的基礎是它能夠管理針對當前屏幕配置 以適當方式渲染應用的布局和位圖 可繪制對象。系統(tǒng)可處理大多數(shù)工作,通過適當?shù)? 縮放布局以適應屏幕尺寸/密度和根據(jù)屏幕密度縮放位圖可繪制對象 ,在每種屏幕配置中渲染您的應用。但是,為了更適當?shù)靥幚聿煌钠聊慌渲?,還應該:

在清單中顯式聲明您的應用 支持哪些屏幕尺寸

通過聲明您的應用支持哪些屏幕尺寸,可確保只有 其屏幕受支持的設備才能下載您的應用。聲明對 不同屏幕尺寸的支持也可影響系統(tǒng)如何在較大 屏幕上繪制您的應用 — 特別是,您的應用是否在屏幕兼容模式中運行。

要聲明應用支持的屏幕尺寸,應在清單文件中包含 supports-screens 元素。

為不同屏幕尺寸提供不同的布局

默認情況下,Android 會調(diào)整應用布局的大小以適應當前設備屏幕。大多數(shù) 情況下效果很好。但有時 UI 可能看起來不太好,需要針對 不同的屏幕尺寸進行調(diào)整。例如,在較大屏幕上,您可能要調(diào)整 某些元素的位置和大小,以利用其他屏幕空間,或者在較小屏幕上, 可能需要調(diào)整大小以使所有內(nèi)容納入屏幕。

可用于提供尺寸特定資源的配置限定符包括 small、normal、large 和 xlarge。例如,超大屏幕的布局應使用 layout-xlarge/。

從 Android 3.2(API 級別 13)開始,以上尺寸組已棄用,您 應改為使用 swdp 配置限定符來定義布局資源 可用的最小寬度。例如,如果多窗格平板電腦布局 需要至少 600dp 的屏幕寬度,應將其放在 layout-sw600dp/ 中。聲明適用于 Android 3.2 的平板電腦布局一節(jié)將進一步討論如何使用新技術聲明布局資源。

為不同屏幕密度提供不同的位圖可繪制對象

默認情況下,Android 會縮放位圖可繪制對象(.png、.jpg 和 .gif 文件)和九宮格可繪制對象(.9.png 文件),使它們以適當?shù)? 物理尺寸顯示在每部設備上。例如,如果您的應用只為 基線中密度屏幕 (mdpi) 提供位圖可繪制對象,則在高密度 屏幕上會增大位圖,在低密度屏幕上會縮小位圖。這種縮放可能在 位圖中造成偽影。為確保位圖的最佳顯示效果,應針對 不同屏幕密度加入不同分辨率的替代版本。

可用于密度特定資源的配置限定符(在下面詳述) 包括 ldpi(低)、mdpi(中)、 hdpi(高)、xhdpi(超高)、xxhdpi (超超高)和 xxxhdpi(超超超高)。例如,高密度屏幕的位圖應使用 drawable-hdpi/。

注:僅當要在 xxhdpi 設備上提供比正常位圖大的啟動器圖標時才需要提供 mipmap-xxxhdpi 限定符。無需為所有應用的圖像提供 xxxhdpi 資源。

有些設備會將啟動器圖標增大 25%。例如,如果您的最高 密度啟動器圖標已是超超高密度,縮放處理會降低其 清晰度。因此應在 mipmap-xxxhdpi 目錄中提供更高密度的啟動器圖標,系統(tǒng)將改為增大較小 的圖標。

請參閱提供 xxx-高密度啟動器圖標以了解詳細信息。對啟動程序圖標以外的 UI 元素不應使用 xxxhdpi 限定符。

注:將您的所有啟動器圖標放在 res/mipmap-[density]/ 文件夾中,而非 res/drawable-[density]/ 文件夾中。無論安裝應用的設備屏幕分辨率如何,Android 系統(tǒng)都會將資源保留在這些密度特定的文件夾中,例如 mipmap-xxxhdpi。此 行為可讓啟動器應用為您的應用選擇要顯示在主 屏幕上的最佳分辨率圖標。如需了解有關使用 mipmap 文件夾的詳細信息,請參閱管理項目概覽。

尺寸和密度配置限定符對應于 前面支持的屏幕范圍中所述的通用尺寸和密度。

在運行時,系統(tǒng)通過 以下程序確保任何給定資源在當前屏幕上都能保持盡可能最佳的顯示效果:

系統(tǒng)使用適當?shù)奶娲Y源

根據(jù)當前屏幕的尺寸和密度,系統(tǒng)將使用您的應用中提供的任何尺寸和 密度特定資源。例如,如果設備有 高密度屏幕,并且應用請求可繪制對象資源,系統(tǒng)將查找 與設備配置最匹配的可繪制對象資源目錄。根據(jù)可用的其他 替代資源,包含 hdpi 限定符(例如 drawable-hdpi/)的資源目錄可能是最佳匹配項,因此系統(tǒng)將使用此 目錄中的可繪制對象資源。

如果沒有匹配的資源,系統(tǒng)將使用默認資源,并按需要向上 或向下擴展,以匹配當前的屏幕尺寸和密度。

“默認”資源是指未標記配置限定符的資源。例如,drawable/ 中的資源是默認可繪制資源。 系統(tǒng)假設默認資源設計用于基線屏幕尺寸和密度,即 正常屏幕尺寸和中密度。 因此,系統(tǒng)對于高密度屏幕向上擴展默認密度 資源,對于低密度屏幕向下擴展。

當系統(tǒng)查找密度特定的資源但在 密度特定目錄中未找到時,不一定會使用默認資源。系統(tǒng)在縮放時可能 改用其他密度特定資源提供更好的 效果。例如,查找低密度資源但該資源不可用時, 系統(tǒng)會縮小資源的高密度版本,因為 系統(tǒng)可輕松以 0.5 為系數(shù)將高密度資源縮小至低密度資源,與以 0.75 為系數(shù) 縮小中密度資源相比,偽影更少。

如需有關 Android 如何通過使配置 限定符與設備配置匹配來選擇替代資源的更多信息,請參閱 Android 如何 查找最佳匹配資源。

使用配置限定符

Android 支持多種配置限定符,可讓您控制系統(tǒng) 如何根據(jù)當前設備屏幕的特性選擇替代資源。配置限定符是可以附加到 Android 項目中資源目錄的字符串,用于指定在其中設計資源的配置。

要使用配置限定符:

在項目的 res/ 目錄中新建一個目錄,并使用以下 格式命名: <resources_name>-<qualifier>

<resources_name> 是標準資源名稱(例如 drawable 或 layout)。

<qualifier> 是下表 1 中的配置限定符,用于指定 要使用這些資源的屏幕配置(例如 hdpi 或 xlarge)。

您可以一次使用多個 <qualifier> — 只需使用短劃線分隔每個 限定符。

將適當?shù)呐渲锰囟ㄙY源保存在此新目錄下。這些資源 文件的名稱必須與默認資源文件完全一樣。

例如,xlarge 是超大屏幕的配置限定符。將 此字符串附加到資源目錄名稱(例如 layout-xlarge)時,它指向 要在具有超大屏幕的設備上使用這些資源的系統(tǒng)。

表 1. 可用于為 不同屏幕配置提供特殊資源的配置限定符。 

屏幕特性 限定符 說明

尺寸 small 適用于小尺寸屏幕的資源。

normal 適用于正常尺寸屏幕的資源。(這是基線尺寸。)

large 適用于大尺寸屏幕的資源。

xlarge 適用于超大尺寸屏幕的資源。

密度 ldpi 適用于低密度 (ldpi) 屏幕 (~120dpi) 的資源。

mdpi 適用于中密度 (mdpi) 屏幕 (~160dpi) 的資源。(這是基線 密度。)

hdpi 適用于高密度 (hdpi) 屏幕 (~240dpi) 的資源。

xhdpi 適用于超高密度 (xhdpi) 屏幕 (~320dpi) 的資源。

xxhdpi 適用于超超高密度 (xxhdpi) 屏幕 (~480dpi) 的資源。

xxxhdpi 適用于超超超高密度 (xxxhdpi) 屏幕 (~640dpi) 的資源。此限定符僅適用于 啟動器圖標,請參閱上面的注。

nodpi 適用于所有密度的資源。這些是密度獨立的資源。不管當前屏幕的密度如何,系統(tǒng)都不會 縮放以此限定符標記的資源。

tvdpi 適用于密度介于 mdpi 和 hdpi 之間屏幕(約為 213dpi)的資源。它并不是 “主要”密度組,主要用于電視,而大多數(shù)應用都不 需要它 — 對于大多數(shù)應用而言,提供 mdpi 和 hdpi 資源便已足夠,系統(tǒng)將根據(jù)需要對其進行 縮放。如果發(fā)現(xiàn)必須提供 tvdpi 資源,應以 1.33*mdpi 的系數(shù) 調(diào)整其大小。例如,mdpi 屏幕的 100px x 100px 圖像應該相當于 tvdpi 的 133px x 133px。

方向 land 適用于橫屏(長寬比)的資源。

方向port 適用于豎屏(高寬比)的資源。

縱橫比 long 適用于縱橫比明顯高于或寬于(分別在豎屏 或橫屏時)基線屏幕配置的屏幕的資源。

notlong 適用于使用縱橫比類似于基線屏幕 配置的屏幕的資源。

 注:如果是為 Android 3.2 和 更高版本開發(fā)應用,請參閱有關聲明適用于 Android 3.2 的平板電腦布局的章節(jié),了解 在為特定屏幕尺寸聲明布局資源時應使用的 新配置限定符(而不是使用表 1 中的尺寸限定符)。

如需了解有關這些限定符如何粗略地對應于實際屏幕 尺寸和密度的更多信息,請參閱本文檔前面的支持的屏幕范圍 。

例如,以下應用資源目錄 為不同屏幕尺寸和不同可繪制對象提供不同的布局設計。使用 mipmap/ 文件夾放置 啟動器圖標。

  1. res/layout/my_layout.xml // layout for normal screen size (“default”) 
  2. res/layout-large/my_layout.xml // layout for large screen size 
  3. res/layout-xlarge/my_layout.xml // layout for extra-large screen size 
  4. res/layout-xlarge-land/my_layout.xml // layout for extra-large in landscape orientation 
  5. res/drawable-mdpi/graphic.png // bitmap for medium-density 
  6. res/drawable-hdpi/graphic.png // bitmap for high-density 
  7. res/drawable-xhdpi/graphic.png // bitmap for extra-high-density 
  8. res/drawable-xxhdpi/graphic.png // bitmap for extra-extra-high-density 
  9. res/mipmap-mdpi/my_icon.png // launcher icon for medium-density 
  10. res/mipmap-hdpi/my_icon.png // launcher icon for high-density 
  11. res/mipmap-xhdpi/my_icon.png // launcher icon for extra-high-density 
  12. res/mipmap-xxhdpi/my_icon.png // launcher icon for extra-extra-high-density 
  13. res/mipmap-xxxhdpi/my_icon.png // launcher icon for extra-extra-extra-high-density  

請注意,當 Android 系統(tǒng)在運行時選擇使用哪些資源時,它會使用 特定邏輯確定“最佳匹配”資源。也就是說,您使用的限定符無 需在所有情況下精確匹配當前屏幕配置,系統(tǒng)也可 使用它們。特別是,根據(jù)屏幕尺寸限定符選擇資源時,如果沒有更好的匹配資源,則系統(tǒng)將 使用專為小于當前屏幕的屏幕而設計的 資源(例如,如有必要,大尺寸屏幕將使用標準尺寸的屏幕 資源)。但是,如果唯一可用的資源大于當前屏幕, 則系統(tǒng)不會使用這些資源,并且如果沒有其他資源與設備 配置匹配,應用將會崩潰(例如,如果所有布局資源均用 xlarge 限定符標記, 但設備是標準尺寸的屏幕)。

提示:如果您有一些系統(tǒng) 應該永遠不會縮放(或許是因為您在 運行時親自對圖像做一些調(diào)整)的可繪制對象資源,則應將它們放在有 nodpi 配置限定符的目錄中。 使用此限定符的資源被視為與密度無關,系統(tǒng)不會縮放 它們。

設計替代布局和可繪制對象

您應該創(chuàng)建的替代資源類型取決于應用的需求。 通常,您應該使用尺寸和方向限定符提供替代布局資源 ,并且使用密度限定符提供替代位圖可繪制對象資源。

以下各節(jié)摘要說明您可能要如何使用尺寸和密度限定符 來分別提供替代布局和可繪制對象。

替代布局

一般而言,在不同的屏幕配置上測試應用后,您會知道 是否需要用于不同屏幕尺寸的替代布局。例如:

在小屏幕上測試時,可能會發(fā)現(xiàn)您的布局不太適合 屏幕。例如,小屏幕設備的屏幕寬度可能無法容納一排 按鈕。在此情況下,您應該為小屏幕提供調(diào)整 按鈕大小或位置的替代布局。

在超大屏幕上測試時,可能會發(fā)現(xiàn)您的布局無法 有效地利用大屏幕,并且明顯拉伸填滿屏幕。 在此情況下,您應該為超大屏幕提供替代布局,以提供 針對大屏幕(例如平板電腦)優(yōu)化、重新設計的 UI。

雖然您的應用不使用替代布局也能在大屏幕上正常運行,但 必須讓用戶感覺您的應用看起來像是專為其 設備而設計。如果 UI 明顯拉伸,用戶很可能對 應用體驗不滿意。

而且,對比橫屏測試和豎屏測試時 可能會發(fā)現(xiàn),豎屏時置于底部的 UI 在橫屏時應位于屏幕右側。

簡而言之,您應確保應用布局:

適應小屏幕(讓用戶能實際使用您的應用)

已針對大屏幕優(yōu)化,可以利用其他屏幕空間

已同時針對橫屏和豎屏方向優(yōu)化

如果 UI 使用的位圖即使在系統(tǒng)縮放 布局后也需要適應視圖大小(例如按鈕的背景圖片),則應使用九宮格位圖文件。九宮格文件基本上是一個指定可拉伸的二維區(qū)域的 PNG 文件。 當系統(tǒng)需要縮放使用位圖的視圖時,系統(tǒng) 會拉伸九宮格位圖,但只拉伸指定的區(qū)域。因此,您無 需為不同的屏幕尺寸提供不同的可繪制對象,因為九宮格位圖可 調(diào)整至任何大小。但您應該為不同的屏幕密度提供 九宮格文件的替代版本。

替代可繪制對象

 

 

支持每種密度的 位圖可繪制對象的相對大小。 

圖 4. 支持每種密度的 位圖可繪制對象的相對大小。

基本上每個應用都應該具有不同密度的替代可繪制對象 資源,因為基本上每個應用都有啟動器圖標,而且該圖標應該在 所有屏幕密度中看起來都很好。同樣,如果您的應用中包含其他位圖可繪制對象(例如 應用中的菜單圖標或其他圖形),則應該為不同密度提供替代版本或 每種密度一個版本。

注:您只需要為 位圖文件(.png、.jpg 或 .gif)和九宮格文件 (.9.png) 提供密度特定的可繪制對象。如果您使用 XML 文件定義形狀、顏色或其他可繪制對象資源,應該 將一個副本放在默認可繪制對象目錄中 (drawable/)。

要為不同的密度創(chuàng)建替代位圖可繪制對象,應遵循六種通用密度之間的 3:4:6:8:12:16 縮放比率。例如,如果您的 位圖可繪制對象是對中密度屏幕使用 48×48 像素,則所有不同的尺寸應為:

36×36 (0.75x) 用于低密度

48×48(1.0x 基線)用于中密度

72×72 (1.5x) 用于高密度

96×96 (2.0x) 用于超高密度

144×144 (3.0x) 用于超超高密度

192×192 (4.0x) 用于超超超高密度(僅限啟動器圖標;請參閱上面的 注)

如需了解有關設計圖標的更多信息,請參閱圖標設計指南, 其中包含各種位圖可繪制對象(例如啟動器圖標、菜單 圖標、狀態(tài)欄圖標、選項卡圖標等)的大小信息。

聲明適用于 Android 3.2 的平板電腦布局

對于第一代運行 Android 3.0 的平板電腦,聲明平板電腦 的正確方式是將它們放在有 xlarge 配置限定符的目錄(例如 res/layout-xlarge/)中。為適應其他類型的平板電腦和屏幕 尺寸 — 特別是 7 英寸平板電腦 — Android 3.2 引入了為更具體的屏幕尺寸指定資源 的新方式。新技術基于布局需要的空間量 (例如 600dp 寬),而不是嘗試讓您的布局容納通用化的尺寸組 (例如大或超大)。

使用通用化的尺寸組時,為 7 英寸平板電腦設計很棘手的原因在于, 7 英寸平板電腦在技術上與 5 英寸手機屬于同一個組(大組)。雖然 這兩種設備在尺寸上似乎很接近,但用于 應用 UI 的空間量明顯不同,用戶交互的方式也是如此。因此,7 英寸和 5 英寸 屏幕不一定使用相同的布局。為便于您為這兩種屏幕提供不同的 布局,Android 現(xiàn)在允許您 根據(jù)實際適用于應用布局的寬度和/或高度指定布局資源( 以 dp 單位數(shù)指定)。

例如,在設計要用于平板電腦樣式設備的布局之后,您可能 發(fā)現(xiàn)該布局在屏幕寬度小于 600dp 時不適用。此閾值 于是變成平板電腦布局需要的最小尺寸。因此,您現(xiàn)在可以指定應僅當至少有 600dp 寬度供應用的 UI 使用時才使用這些布局資源。

應選擇一個寬度并將其設計為最小尺寸,或者在布局設計完成后測試 其支持的最小寬度。

注:請記住,這些新尺寸 API 使用的所有數(shù)據(jù)是密度獨立的像素 (dp) 值,您的布局尺寸也應始終 使用 dp 單位定義,因為您關注的是系統(tǒng) 考慮屏幕密度后可用的屏幕空間量(與使用原始像素分辨率相反)。如需了解 密度獨立像素的更多信息,請參閱本文檔前面的術語和概念 。

使用新尺寸限定符

因為微信字數(shù)限制,請點擊左下角原文鏈接閱讀完整內(nèi)容。

責任編輯:龐桂玉 來源: Android開發(fā)中文站
相關推薦

2009-11-05 15:58:37

無線接入點

2015-08-31 15:07:12

VDSLFTTH寬帶

2009-09-25 10:03:51

Java泛型

2012-08-09 09:11:32

PHP超時

2009-09-16 11:19:48

Linq Select

2009-08-05 09:48:12

JSP學習經(jīng)驗

2017-11-13 16:35:36

iPhone X全面屏APP

2015-06-30 10:59:22

MobileWeb適配

2018-04-12 14:56:49

Android劉海屏技巧

2013-05-22 09:49:36

2024-07-26 10:35:00

2024-09-04 09:43:36

2013-07-10 09:56:02

軟件定義網(wǎng)絡SDN

2024-08-29 10:23:42

2024-11-06 09:54:58

SpringJava開發(fā)

2010-03-09 14:30:45

Linux全部硬件信息

2009-12-21 13:34:41

OSGi

2024-05-31 13:34:57

2018-07-26 15:16:50

小程序iPhone X甜酸
點贊
收藏

51CTO技術棧公眾號

日韩精品亚洲专区在线观看| 免费黄色在线看| 久久成人亚洲| 日韩中文字幕在线免费观看| 韩国三级与黑人| 亚洲精品一区| 亚洲精品国产第一综合99久久| 国产亚洲福利社区| 又骚又黄的视频| 亚洲福利电影| zzijzzij亚洲日本成熟少妇| 插我舔内射18免费视频| yy6080久久伦理一区二区| 一区二区三区视频在线看| 欧洲精品码一区二区三区免费看| 国产三级漂亮女教师| 久久福利影视| 欧美国产第二页| 卡一卡二卡三在线观看| 都市激情亚洲| 欧美一区日本一区韩国一区| 午夜视频在线瓜伦| av中文字幕电影在线看| 自拍偷拍欧美激情| 日韩伦理一区二区三区av在线| 成人午夜福利视频| 激情综合五月婷婷| 国产精品久久久久久av| 日韩网红少妇无码视频香港| 亚洲精品va| 中文字幕国产精品| 亚洲第一成人网站| 国产欧美啪啪| 日韩手机在线导航| 热久久久久久久久| 91九色综合| 欧美性高跟鞋xxxxhd| 国产精品无码电影在线观看| 老司机在线视频二区| 欧美国产欧美综合| 日韩在线电影一区| 日本a一级在线免费播放| 成人av网站免费观看| 亚洲综合大片69999| 97成人免费视频| 久久99精品国产.久久久久 | 中文字幕精品亚洲| 曰本一区二区三区视频| 亚洲第一视频在线观看| 国产一卡二卡三卡四卡| ccyy激情综合| 亚洲精品一线二线三线无人区| 日批视频在线看| 秋霞一区二区三区| 欧美一区二区三区的| 日本黄色一级网站| 中文字幕一区二区三区日韩精品| 日韩欧美中文字幕精品| 久久无码人妻一区二区三区| 人人爱人人干婷婷丁香亚洲| 日韩午夜中文字幕| www.黄色网| 激情av综合| 精品视频久久久久久| 五月天综合视频| 欧美一区三区| 久久久精品影院| 成熟的女同志hd| 欧美日韩亚洲一区二区三区在线| 欧美国产精品日韩| 久久久国产高清| 免费日韩一区二区| 国产精品视频久久| 国产免费黄色网址| 不卡在线视频中文字幕| 精品高清视频| 91精品大全| 亚洲品质自拍视频网站| 和岳每晚弄的高潮嗷嗷叫视频| 色戒汤唯在线| 欧美日韩一区二区在线视频| 日本黄色一级网站| 亚洲老女人视频免费| 国产亚洲欧洲高清| 欧美三级小视频| 性伦欧美刺激片在线观看| 国产成人精品久久亚洲高清不卡| 一卡二卡在线观看| 国产.欧美.日韩| 日本一区二区在线视频| 国产剧情在线| 一区二区三区日韩欧美| www.一区二区.com| 韩国精品主播一区二区在线观看 | 色综合久久一区二区三区| 日韩中文在线不卡| 国产福利久久久| 日韩中文字幕1| 91成人在线看| 黄色片在线免费观看| 亚洲欧美一区二区三区久本道91 | www.一区| 亚洲精品aⅴ中文字幕乱码 | 亚洲一区二区av在线| 亚洲色成人一区二区三区小说| 国产福利91精品一区二区| 亚洲精品在线一区二区| 91香蕉国产视频| 国产日韩欧美一区| 97碰碰视频| 福利成人在线观看| 婷婷成人综合网| 99九九99九九九99九他书对| 五月国产精品| 欧美国产精品va在线观看| 这里只有精品免费视频| 成人h动漫精品一区二| 亚洲在线不卡| 欧美xxxxxx| 亚洲成人亚洲激情| 91杏吧porn蝌蚪| 免费成人性网站| 美日韩免费视频| jizz一区二区三区| 日韩久久久久久| 最新一区二区三区| 美女一区二区三区| 欧洲一区二区在线观看| 久久男人天堂| 亚洲国产精品国自产拍av秋霞| 手机在线免费看片| 九九精品视频在线看| 午夜精品一区二区三区在线观看| 在线天堂资源| 日韩高清中文字幕| 日韩精品一卡二卡| 成人污视频在线观看| 日韩视频一二三| 伊人久久大香伊蕉在人线观看热v| 亚洲一区二区福利| 欧美一区二区激情视频| 99re成人精品视频| 日日摸日日碰夜夜爽无码| 91精品国产自产在线丝袜啪| 成年人精品视频| 国产美女永久免费| 一区二区三区日韩在线观看| 亚洲精品乱码久久久久久9色| 在线国产一区| 成人午夜小视频| 黄色成人影院| 日韩欧美在线不卡| 麻豆91精品91久久久| 自拍偷拍亚洲| 国产精品久久影院| 一本大道熟女人妻中文字幕在线| 欧美三级午夜理伦三级小说| 欧美在线观看视频| 日本福利片在线| 91国内精品野花午夜精品| 公侵犯人妻一区二区三区| 日韩精品电影在线观看| 亚洲va久久久噜噜噜久久狠狠| 成人在线高清| 日韩中文在线视频| 国产丰满美女做爰| 亚洲主播在线播放| 丰满圆润老女人hd| 秋霞电影一区二区| 国产免费色视频| 欧美国产亚洲精品| 久久全球大尺度高清视频| 丝袜视频国产在线播放| 精品久久久久久国产91| 成人激情五月天| 国产精品中文欧美| 亚洲中文字幕无码av永久| 偷拍亚洲色图| 国产一区二区视频在线观看| 黄页网站在线观看免费| 亚洲精品久久久久国产| 亚洲一区二区影视| 亚洲777理论| 国产交换配乱淫视频免费| 蜜桃久久av一区| 超碰成人免费在线| 禁断一区二区三区在线| 成人淫片在线看| 91在线三级| www.日韩不卡电影av| 二区三区在线视频| 欧美调教femdomvk| 日韩av综合在线| 中文字幕一区二区三区蜜月| 国产成人精品无码片区在线| 日本不卡一二三区黄网| 欧美极品少妇无套实战| 国内精品伊人久久久| 成人在线免费网站| abab456成人免费网址| 欧美激情一区二区三区在线视频观看| 可以在线观看的av| 日韩无一区二区| 国产亚洲久一区二区| 亚洲成精国产精品女| 欧美亚洲色综久久精品国产| 成人免费毛片片v| 天天干天天操天天做| 亚洲影视综合| 欧美 亚洲 视频| 成人一区而且| 欧美人与性禽动交精品| 97久久超碰| 亚洲最大成人在线| 欧美a视频在线| 国产99久久精品一区二区| 日本高清在线观看视频| 日韩在线视频播放| 国产午夜在线视频| 日韩精品视频观看| 午夜老司机福利| 欧美日韩国产三级| 中文字幕在线看人| 五月综合激情日本mⅴ| 国产大片免费看| 国产精品久久久久aaaa樱花| 中文字字幕码一二三区| 不卡av电影在线播放| 苍井空张开腿实干12次| 久久电影网站中文字幕| 国内自拍视频一区| 午夜在线一区二区| 日韩小视频在线播放| 欧美视频一区| www国产无套内射com| 国产精品99一区二区三| 日韩尤物视频| 日韩av大片| 日韩高清在线播放| 国产精品手机在线播放| 免费看成人午夜电影| 欧美一级一片| 久久精品一二三区| 日本中文字幕在线一区| 九色视频成人porny| 精品素人av| 久久久一本精品99久久精品66| 久久99国产精品久久99大师| 国产中文一区二区| 日韩精品免费一区二区三区竹菊| 国产主播一区二区三区四区| 欧美激情极品| 欧美在线视频二区| 精品免费在线| 一区二区三区四区五区精品 | 国产精品影视在线观看| 成人免费黄色av| 懂色av中文一区二区三区| 五月天丁香社区| 成+人+亚洲+综合天堂| www.超碰97| 国产女同互慰高潮91漫画| 婷婷综合在线视频| 高清亚洲高清| 国产丝袜精品第一页| 黄色软件在线观看| 日韩亚洲精品电影| 中文字幕中文字幕在线十八区| 久久久久亚洲精品成人网小说| 捆绑调教日本一区二区三区| 日韩av男人的天堂| 亚洲三级在线| 国产综合精品一区二区三区| 免费成人网www| 亚洲一二三区在线| 欧美日韩少妇| 国产精品天天av精麻传媒| 精品一区二区三区香蕉蜜桃 | 韩国精品福利一区二区三区| 久久影院理伦片| 日韩国产一区二区| 97在线免费视频观看| 久久成人国产| 激情成人在线观看| 91亚洲资源网| 最新一区二区三区| 欧美日韩在线视频观看| 91激情在线观看| 亚洲高清久久久久久| 国产精品一区二区三区四区色| 久久不射电影网| 午夜影院在线播放| 亚洲精品日韩激情在线电影| 亚洲精品亚洲人成在线观看| 影音先锋成人资源网站| 欧美在线综合| 久久久精品视频国产| 国产亚洲精品久| 久热这里只有精品在线| 欧美视频在线一区二区三区| 开心激情综合网| www.日本久久久久com.| 中文在线免费视频| 国产高清自拍一区| 91偷拍一区二区三区精品| 97国产在线播放| 国产电影精品久久禁18| 娇妻被老王脔到高潮失禁视频| 亚洲国产精品一区二区www | 国产专区欧美精品| xxx在线播放| 亚洲va国产天堂va久久en| 国产视频在线免费观看| 国产亚洲精品久久久久久777| 在线观看h网| 成人国产精品色哟哟| 狠狠色狠狠色综合婷婷tag| 精品国产一二三四区| 国产成人精品一区二区三区四区 | 欧美日韩国产片| 天天av天天翘| 欧美成人全部免费| 欧美风情在线视频| 日本成人黄色| 亚洲欧美日韩专区| 无码人妻精品一区二区三| 亚洲视频在线一区| 亚洲中文字幕一区二区| 国产亚洲欧美aaaa| 最新日韩三级| 欧美日本韩国在线| 久久黄色影院| 色婷婷在线影院| 欧美午夜无遮挡| 日本一区高清| 26uuu亚洲伊人春色| 久久久久观看| 国产h视频在线播放| 成人91在线观看| 日韩久久久久久久久| 精品国产在天天线2019| 波多野在线观看| 国产精品一区免费观看| 狠狠色狠狠色综合日日tαg | 国产人妖乱国产精品人妖| 中文字幕精品无| 国产亚洲精品美女久久久| 韩日精品一区| 一级二级三级欧美| 久久 天天综合| 欧美成人精品欧美一| 日韩一级完整毛片| а√天堂8资源中文在线| 国产美女99p| 国产毛片一区| 国产精品天天干| 欧美日韩美少妇| 大片免费在线观看| 成人免费视频网站入口| 亚洲精选91| 熟女俱乐部一区二区| 在线视频欧美精品| 日本成人网址| 99免费在线观看视频| 亚洲精品激情| 欧美另类z0zx974| 91精品久久久久久久99蜜桃| 色噜噜狠狠狠综合欧洲色8| 好看的日韩精品视频在线| 亚洲欧美视频| 久久人妻无码aⅴ毛片a片app| 91精品国产91久久综合桃花| 欧美巨大xxxx做受沙滩| 免费一区二区三区| 蜜桃视频在线观看一区二区| 麻豆疯狂做受xxxx高潮视频| 亚洲黄一区二区| 日韩精品三区| 免费看欧美一级片| 久久亚区不卡日本| 国产精品玖玖玖| 欧美专区日韩视频| 99精品网站| 少妇光屁股影院| 777欧美精品| 欧美办公室脚交xxxx| 一区二区在线不卡| 久久精品资源| 国产精品免费网站| 欧美私人啪啪vps| 性欧美一区二区| 欧美xxxx在线观看| 巨胸喷奶水www久久久免费动漫| 精品嫩模一区二区三区| 久久综合久久综合亚洲| 99免费在线视频| 国产精品69av| 在线看片一区| 久久噜噜色综合一区二区| 亚洲精品一区二三区不卡|