android基礎知識之螢幕相容模式
注意:如果你在低於安卓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遊戲開發的知識可以查詢天地會
android遊戲開發
1 容器我們準備自定義viewgroup 叫做game2048layout 裡面的塊塊自定義view 叫做game2048item 接下來從簡單的開始 2 game2048item game2048item是個view,並且需要哪些屬性呢?首先得有個number,顯示數字嘛,然後繪製的時候根據num...
Android之螢幕適配
二 螢幕適配 總結 注意 尺寸和解析度無關 四個方面 禁用絕對布局 由於絕對布局 absolutelayout 適配性極差,所以極少使用。少用px 需求 按鈕佔螢幕的一半 效果 若以px為單位,在左側一半為120px,在右側,120px只佔據1 4的大小 搭配layout weight 使用 wra...
Android遊戲開發之View切換閃動解決
我在開發android遊戲是一般是通過view切換的,activity中有乙個handler 命名為handler 來處理view的切換,而且activity儲存有gamemainview和gameview的例項 命名為gamemainview和gameview 從主選單gamemainview切換...