Android自適應螢幕方向和大小

2021-08-25 12:48:35 字數 1412 閱讀 5528

螢幕大小:

一:不同的layout

二:hdpi、mdpi、ldpi

在之前的版本中,只有乙個drawable,而2.1版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三個,這三個主要是為了支援多解析度。

drawable- hdpi、drawable- mdpi、drawable-ldpi的區別:

(1)drawable-hdpi裡面存放高解析度的,如wvga (480x800),fwvga (480x854)

(2)drawable-mdpi裡面存放中等解析度的,如hvga (320x480)

(3)drawable-ldpi裡面存放低解析度的,如qvga (240x320)

系統會根據機器的解析度來分別到這幾個資料夾裡面去找對應的。

在開發程式時為了相容不同平台不同螢幕,建議各自資料夾根據需求均存放不同版本。

螢幕方向:

橫屏豎屏自動切換:

可以在res目錄下建立layout-port和layout-land兩個目錄,裡面分別放置豎屏和橫屏兩種布局檔案,這樣在 手機螢幕方向變化的時候系統會自動呼叫相應的布局檔案,避免一種布局檔案無法滿足兩種螢幕顯示的問題。

以下步驟是網上流傳的,不過我自己之前是通過圖形化介面實現這個配置,算是殊途同歸,有空我會把貼上來。

還要說明一點:每個activity都有這個屬性screenorientation ,每個activity都需要設定,可以設定為豎屏(portrait),也可以設定為無重力感應(nosensor)。

另外,android中每次螢幕 的切換動會重啟activity,所以應該在activity銷毀前儲存當前活動的狀態,在activity再次create的時候載入配置,那樣,進行中的遊戲 就不會自動 重啟了!

有的程式適合從豎屏切換到橫屏,或者反過來,這個時候怎麼辦呢?可以在配置activity的地方進行如下的配置android:screenorientation="portrait"。這樣就可以保證是豎屏總是豎屏了,或者landscape橫向。

而有的程式是適合橫豎屏切換的。如何處理呢?首先要在配置activity的時候進行如下的配 置:android:configchanges="keyboardhidden|orientation",另外需要重寫activity的 onconfigurationchanged方法。實現方式如下,不需要做太多的內容:

@override

public void onconfigurationchanged(configuration newconfig) else if (this.getresources().getconfiguration().orientation == configuration.orientation_portrait)

}

android 螢幕自適應

細說 layout weight 目前最為推薦的 android多螢幕自適應解決方案。該屬性的作用是決定控制項在其父布局中的顯示權重,一般用於線性布局中。其值越小,則對應的layout width或layout height的優先順序就越高,一般橫向布局中,決定的是 layout width 的優先...

Android螢幕自適應解析

先了解下api中的工具類 android.util.displaymetrics 最主要的顯示引數。獲得displaymetrics可以通過2種方式 1.在activity中使用activity.getresources getdisplaymetrics 2.新建乙個例項,通過display類的工...

android 自適應 多螢幕支援

1 螢幕相關概念 1.1解析度 是指螢幕上有橫豎各有多少個畫素 1.2螢幕尺寸 指的是手機實際的物理尺寸,比如常用的2.8英吋,3.2英吋,3.5英吋,3.7英吋 android將螢幕大小分為四個級別 small,normal,large,and extra large 1.3螢幕密度 每英吋畫素數...