支持不同的設(shè)備
支持不同的語言
其實(shí)就是在res中創(chuàng)建不同的語言文件夾,例如:
res/
values/
strings.xml
values-es/
strings.xml
values-fr/
strings.xml
然后創(chuàng)建對(duì)應(yīng)的語言文件即可
支持不同分辨率的設(shè)備
創(chuàng)建不同的布局文件
android 對(duì)于屏幕分類使用兩種特性:size和density;我們的APP應(yīng)該對(duì)不同大小和分辨率的設(shè)備都做適配;
主要有四種大?。簊mall, normal, large, xlarge
四種分辨率:low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)
跟語言一樣,也是在不同的文件夾中放置這些布局文件就可以了。另外,因?yàn)闀?huì)有橫屏和豎屏兩種模式,所以說為了最佳的用戶體驗(yàn),我們的許多APP都應(yīng)該修改布局來適配不同的模式。
MyProject/
res/
layout/ # default (portrait)
main.xml
layout-land/ # landscape
main.xml
layout-large/ # large (portrait)
main.xml
layout-large-land/ # large landscape
main.xml
名字必須是相同的,這樣子在代碼初始化的時(shí)候就會(huì)根據(jù)屏幕的大小自動(dòng)選擇相應(yīng)的布局文件了,而且會(huì)自動(dòng)根據(jù)屏幕的方向來決定使用landscape(橫屏模式)還是portrait(豎屏模式)
android 3.2以上支持一個(gè)可以定義屏幕大小的高級(jí)方法,它能讓你根據(jù)密度無關(guān)像素的最小寬度和高度來指定不同的資源
創(chuàng)建不同的Bitmaps
提供不同分辨率的bitmap資源來適應(yīng)不同的密度(?):
- xhdpi: 2.0
- hdpi: 1.5
- mdpi: 1.0 (baseline)
- ldpi: 0.75
意思就是說,如果你對(duì)xhdpi尺寸的設(shè)備生成了一張200200的圖片,那就應(yīng)該生成同樣的資源——150150(hdpi)、100x100(mdpi)、 75x75(ldpi)。
文件的分布如下
MyProject/
res/
drawable-xhdpi/
awesomeimage.png
drawable-hdpi/
awesomeimage.png
drawable-mdpi/
awesomeimage.png
drawable-ldpi/
awesomeimage.png
任何時(shí)候,你引用 @drawable/awesomeimage ,系統(tǒng)都會(huì)基于屏幕的分辨率選擇適當(dāng)?shù)腷itmap。
ldpi分辨率的資源不一定要用上,因?yàn)橄到y(tǒng)會(huì)自動(dòng)的對(duì)hdpi的資源按比例縮小一半以適配ldpi的屏幕
支持不同的平臺(tái)版本
指定最小和目標(biāo)API Levels
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... >
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
...
</manifest>
一般在AndroidManifest.xml中使用 <uses-sdk> 這個(gè)元素標(biāo)簽來定義應(yīng)用兼容的最低的APIlevel(minSdkVersion)和最高的API Level(targetSdkVersion)
實(shí)時(shí)檢查系統(tǒng)版本
private void setUpActionBar() {
// Make sure we're running on Honeycomb or higher to use ActionBar APIs
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
}
}
如代碼所展示的那樣,你可以通過Build這個(gè)類來判斷APP現(xiàn)在運(yùn)行的版本