Android基礎知識之螢幕相容模式

2021-06-16 15:13:16 字數 2617 閱讀 1895

原文:

注意:如果你在低於安卓3.0的版本上進行應用開發,但其在更大螢幕的裝置(比如平板電腦)上顯示正常時,你就需要禁用螢幕兼任模式來保持最佳使用者體驗。要學習如何快速禁用使用者選項,請跳轉至禁用螢幕兼任模式。

螢幕兼任模式是一種改善方法,用於不能正常適配大屏裝置(如平板電腦)的情況。從安卓1.6開始,系統就能支援多種螢幕尺寸,並且調整應用布局的顯示,來適應每一款螢幕。然而,如果在支援多種螢幕supporting multiple screens的指引下,你的應用仍不能成功適配螢幕,其問題就很有可能就出在適配更大螢幕上。對於存在這種問題的應用,螢幕兼任模式可以讓其在更大屏裝置上得到改善。

目前有兩個版本的螢幕兼任模式,它們稍有不同:

版本一(安卓1.6-3.1)

系統將應用ui顯示為「郵票」式視窗。即,系統將應用的布局認定為適應普通尺寸手機(模擬320dp x 480dp的螢幕),視窗以外的螢幕部分顯示為黑色背景。

該版本隨安卓1.6的產生而出現,安卓1.6的設計就是僅適用於320dp x 480dp的原始尺寸。因為現在安卓1.5的裝置很少使用了,幾乎所有應用都在安卓1.6或更高的平台上開發,所以應該不會有版本一的螢幕兼任模式來適配更大螢幕。該版本差不多已經過時了。

圖1. 在安卓3.2平板電腦上,應用以螢幕兼任模式執行的情況。

圖2. 圖1中的應用,在禁用螢幕兼任模式下的運**況。

要禁用該版本的螢幕適配模式,你只需要設定android:minsdkversion或android:targetsdkversion至 「4」或更高,或設定android:resizeable至「true」。

版本二(安卓3.2或更高)

系統按照在普通螢幕手機上的顯示方式(大致模擬320dp x 480dp的螢幕)顯示應用,然後進行放大,填滿螢幕。實際上就是「拉大」應用布局,這通常會引起ui的偽跡或畫素丟失。

該版本隨著安卓3.2的產生而出現,在應用還沒有實施支援多種螢幕supporting multiple screens中所提及的技術時,該版本起到了進一步支援應用在最新裝置上的正常顯示的作用。

這樣螢幕兼任模式就能一直啟用,使用者不可禁用。(下面的章節將會討論如何宣告支援大螢幕)。

圖3. 開關螢幕適配模式的彈出選單(當前為禁用狀態,僅正常調整)。

作為開發者,你應該掌握在何時該使用螢幕兼任模式。以下章節將告訴你,在安卓3.2或更高版本下,如何選擇禁用或啟用螢幕兼任模式來適配更大螢幕。

如果你的應用最初是為低於3.0的版本開發的,而它能在更大螢幕上正常顯示,那麼你就應當禁用螢幕兼任模式,從而保證最佳使用者體驗。否則,使用者也許會啟用螢幕兼任模式,這樣就會影響最佳的應用體驗效果。

在預設下,當一下可選特性之一為true時,3.2或更高版本裝置的螢幕兼任模式將可用:

· 將應用中android:minsdkversion和android:targetsdkversion同時設為"10"或更低,並且使用元素,* 不要宣告* 支援大屏。

· 將應用中 android:minsdkversion或android:targetsdkversion二者之一設定文"11"或更高,並且使用元素,* 宣告其不支援* 大屏。

要想完全禁用螢幕兼任模式的使用者選項並且移除系統欄上的圖示,你可以:

在清單檔案中,新增元素,指定android:xlargescreens屬性為「true」;

就這麼簡單。這樣就宣告了你的應用支援所有大螢幕尺寸,系統也會根據螢幕調整布局。不論你在屬性中設定了什麼值,它都會起作用。

在清單的元素中,設定android:targetsdkversion為「11」或更高:

這種方法可宣告應用支援安卓3.0,並且可以在更大螢幕(平板電腦等)上起作用。

謹慎:3.0或更高版本上,該方法也可啟用ui的全息主題,啟用時將在activity上新增action bar,且移除系統欄上的選項選單按鈕。

如果在你改變此處以後,螢幕兼任模式仍然啟用,請檢查清單中的,確認其中沒有設定為「false」的屬性。最佳做法是使用元素,宣告其支援不同螢幕尺寸,這樣你就可以一直使用該元素了。

當應用針對安卓3.2(api等級13)或更高時,你可以使用元素,針對某些螢幕啟用或禁用螢幕兼任模式。

注意:螢幕兼任模式並不是一種最佳的選擇——他會因縮放而導致ui的畫素丟失和虛化。讓應用在大屏手機上正常顯示的最佳方法,請參見支援多種螢幕,並且為不同螢幕尺寸提供替換性選擇。

在預設下,當設定android:minsdkversion或android:targetsdkversion二者之一為「11」或更高時,螢幕兼任模式將對使用者不可用。若二者之一為true,且應用不能針對大屏進行適當調整時,你選擇以下一種方式,來啟用螢幕兼任模式:

·在清單檔案中,新增 元素並且指定android:compatiblewidthlimitdp屬性為「320」:

這表明,該應用「最小螢幕寬度」的最大值為320dp。通過該方法,任何大於此值的最小螢幕值都可將螢幕兼任模式設為使用者的可選特性。

注意:現今,螢幕兼任模式進模擬螢幕為320dp寬,所以,如果android:compatiblewidthlimitdp的值大於320,螢幕兼任模式將不會在任何裝置上啟用。

·如果應用在針對大屏調整時出現功能性崩潰,所以你想強迫使用者使用螢幕兼任模式(而不僅僅是提供這個選項),你可以使用android:largestwidthlimitdp屬性。

這個屬性和android:compatiblewidthlimitdp效果一樣,除了強制啟用螢幕兼任模式而不允許使用者禁用。

Android之基礎知識(一)

一 引言 很多時候,我們往往容易忘記最基礎的知識,此篇文章當做最基礎的知識筆記,不定時更新。二 此篇主要包括android對各類資源的引用 1 float android.content.res.resources.getfraction int id,int base,int pbase 2017...

android基礎知識

1.android paint和color類 要繪圖,首先得調整畫筆,待畫筆調整好之後,再將影象繪製到畫布上,這樣才可以顯示在手機螢幕上。android 中的畫筆是 paint類,paint 中包含了很多方法對其屬性進行設定,主要方法如下 setantialias 設定畫筆的鋸齒效果。setcolo...

Android 基礎知識

我們是 h是對應 2560 1440 xxh是對應 1920 1080 1dp 3px xh是對應 1280 720 1dp 2px h是對應 800 480 m是對應 480 320 bg splash.png error failed to read png signature file doe...