Android應用開發技術 使用者介面 裝置適配

2021-07-04 03:15:31 字數 2808 閱讀 2758

部落格:

github:

由於android平台的豐富性和多樣性,全世界的android裝置有著各種各樣的尺寸和大小,而為了能夠推廣我們的應用給各種各樣的使用者,裝置適配是一件很重要的工作。

把ui中的字串儲存在外部檔案,通過**提取,這是一種很好的做法。android可以通過工程中的資源目錄輕鬆實現這一功能。

為了支援多國語言,在res/中建立乙個額外的values目錄以連字元和iso國家**結尾命名,比如values-es/是為語言**為」es」的區域設定的簡單的資源檔案的目錄。android會在執行時根據裝置的區域設定,載入相應的資源

若你決定支援某種語言,則需要建立資源子目錄和字串資源檔案,如下圖所示:

新增不同區域語言的字串值到相應的檔案,在執行時,android系統會根據使用者裝置當前的區域設定,使用相應的字串資源。

舉例

下面列舉了幾個不同語言對應不同的字串資源檔案:

英語(預設區域語言,/values/strings.xml)

<?xml version="1.0" encoding="utf-8"?>

name="hello_world">hello world!string>

resources>

西班牙語(/values-es/strings.xml)

<?xml version="1.0" encoding="utf-8"?>

name="title">mi aplicaciónstring>

name="hello_world">hola mundo!string>

resources>

法語(/values-fr/strings.xml)

<?xml version="1.0" encoding="utf-8"?>

name="hello_world">bonjour le monde !string>

resources>

一般說來,有4種普遍尺寸:

以及4種解析度

為了針對不同的螢幕去優化使用者體驗,你需要對每一種將要支援的螢幕尺寸,建立唯一的xml檔案。每一種layout需要儲存在相應的資源目錄中,目錄以- 為字尾命名。例如,對大尺寸螢幕(large screens),乙個唯一的layout檔案應該儲存在 res/layout-large/ 中。為了匹配合適的螢幕尺寸android會自動地測量你的layout檔案。所以你不需要因不同的螢幕尺寸去擔心ui元素的大小,而應該專注於layout結構對使用者體驗的影響,比如關鍵檢視相對於同級檢視的尺寸或位置。

android studio在處理這種布局檔案的尺寸和方向變化時也是非常智慧型的,你只需要簡單的建立layout-land、layout-large這些目錄即可,如下所示:

我們應該為4種普遍解析度:低,中,高,超高精度,都提供相適配的bitmap資源。以便在所有螢幕解析度中都能有良好的畫質和效果。

要生成這些影象,需要從原始的向量影象資源著手,然後根據下列尺寸比例,生成各種密度下的影象。

也就是說,如果你針對xhdpi的裝置生成了一張200x200的影象,同樣的你應該為hdpi生成150x150,為mdpi生成100x100, 和為ldpi生成75x75的資源。

任何時候,當你引用 @drawable/awesomeimage 時系統會根據螢幕的解析度選擇恰當的bitmap。另外,低密度(ldpi)資源是非必要的,當你提供了hdpi的影象,系統會把hdpi的影象按比例縮小一半,去適配ldpi的螢幕。

如下所示:

<?xml version="1.0" encoding="utf-8"?>

xmlns:android=""

android:minsdkversion="4"

android:targetsdkversion="15" />

manifest>

private

void

setupactionbar()

}

android:showasaction="ifroom"
在跨版本的xml檔案中這麼做是安全的,因為舊版本的android會簡單地忽略showasaction屬性,你並不需要用到res/menu-v11/ 中單獨版本的檔案。

使activity看起來像對話方塊

android:theme="@android:style/theme.dialog">

使activity有乙個透明背景

android:theme="@android:style/theme.translucent">

應用在/res/values/styles.xml 中定義的自定義主題:

android:theme="@style/customtheme">

android:theme="@style/customtheme">

Android應用開發技術 應用元件 章節列表

部落格 github android應用開發技術 應用元件 事件處理機制 android應用開發技術 應用元件 應用元件基本原理 android應用開發技術 應用元件 activity基本原理 android應用開發技術 應用元件 fragment基本原理 android應用開發技術 應用元件 fr...

Android應用開發優化

最近總結了一些,android應用開發中,需要注意的一些事項,與大家分享 1.盡量少的宣告全域性變數 2.宣告全域性靜態變數,一定要加final宣告 3.宣告非靜態的全域性變數,最好不要初始化任何值,在使用到的地方,在進行初始化 4.函式中若干次使用全域性變數,應該將全域性變數賦值給本地變數,然後直...

Android應用開發 AsyncTask

摘錄自 android 多執行緒 asynctask詳解 asynctaskasynctask params,progress,result params 這個泛型指定的是我們傳遞給非同步任務執行時的引數的型別 progress 這個泛型指定的是我們的非同步任務在執行的時候將執行的進度返回給ui執行...