麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > Android > 正文

Android文檔Training之設備適配

2019-11-06 09:43:20
字體:
來源:轉載
供稿:網友

語言適配

在android開發過程我們習慣或者說應該習慣把一些資源文件單獨拿出來放到資源文件夾中那個,比如說string,在不同地區顯示不同的語言,比如說我們把手機上的語言切換成西班牙語,這時我們的app就應該也切換到默認的西班牙語文件資源,這樣可以使得我們的app更加國際化。

我們知道,在android studio中新建一個工程的時候res文件夾下會有value文件夾,這個文件夾一般存放string style integer color dimen等資源文件,默認的value是以英語為首選語言的,例如

English (默認地點), /values/strings.xml:

<?xml version="1.0" encoding="utf-8"?><resources> <string name="title">My application</string> <string name="hello_world">Hello World!</string></resources>

Spanish(西班牙), /values-es/strings.xml:

<?xml version="1.0" encoding="utf-8"?><resources> <string name="title">Mi Aplicación</string> <string name="hello_world">Hola Mundo!</string></resources>

French(法國), /values-fr/strings.xml:

<?xml version="1.0" encoding="utf-8"?><resources> <string name="title">Mon Application</string> <string name="hello_world">Bonjour le monde !</string></resources>

注意到它們的區別在于文件夾名稱不同和對應的語言分別為英語、西班牙語和法語.

資源文件的使用

java代碼中的使用示例

// Get a string resource from your app's ResourcesString hello = getResources().getString(R.string.hello_world);// Or supply a string resource to a method that requires a stringTextView textView = new TextView(this);textView.setText(R.string.hello_world);

xml中使用示例

<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" />

屏幕適配

android各種各樣的設備都有兩個屬性 size和density,我們都希望自己做的app能運行在各種各樣的手機上適配各種各樣的size和density.

android手機有四種size: small, normal, large, xlarge

android手機有四種density: low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)

考慮到不同android設備的不同屬性,我們也是把不同的資源文件放到不同的資源文件夾中,這點和語言適配是基本類似的

創建不同的布局

創建不同的歌布局文件夾res/layout{-size}/. 其中size可以是small, normal, large, xlarge,考慮到屏幕方向(oritation)也是一種新的屏幕尺寸(寬高相反 portrait/landscape),于是我們又有了文件夾res/layout{-size}-land/.實際文件夾如下

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

創建不同的bitmap

不同的density對應的名稱

xhdpi: 2.0hdpi: 1.5mdpi: 1.0 (baseline)ldpi: 0.75

這意味著如果你為xhdpi設備做了一張200*200的圖片,你也得為hdpi做一張150*150的圖片,為mdpi做一張100*100的圖片,為ldpi做一張75*75的圖片,這樣drawable資源文件夾示意圖如下:

MyProject/ res/ drawable-xhdpi/ awesomeimage.png drawable-hdpi/ awesomeimage.png drawable-mdpi/ awesomeimage.png drawable-ldpi/ awesomeimage.png

Android版本適配

新版本的android系統一般都有新的比較好的特性,這時你還需要兼容低版本的系統直到它們升級到最新系統.為了獲得最好的用戶體驗,你必須使用support library.它使得舊版本的系統可以使用最版本的特性.

在做app時,需要具體設置最小支持sdk版本及目標sdk版本(app->build.gradle)

android { compileSdkVersion 25 buildToolsVersion "25.0.1" defaultConfig { applicationId "huang.xiang.myapplication" minSdkVersion 15 targetSdkVersion 25 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }}

我們可以在運行時檢查當前系統的sdk版本,示例如下

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); }}

注意:在android開發中對xml文件的解析是安全的,當某一屬性只在高版本的系統支持時,在低版本系統中解析遇到此屬性將會被直接忽視,不會造成app的crash,所以我們可以隨意的在xml中使用新版本的屬性。

使用系統的style樣式和Theme主題

使你的activity看起來像一個對話框:

<activity android:theme="@android:style/Theme.Dialog">

使你的activity有一個透明的背景:

<activity android:theme="@android:style/Theme.Translucent">

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

<activity android:theme="@style/CustomTheme">

把主題加到app中所有activity上,增加android:theme屬性給Manifest中的application節點

<application android:theme="@style/CustomTheme">
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久久免费观看完整版 | 免费一级特黄毛片视频 | 一级美女大片 | 高清国产午夜精品久久久久久 | 国产午夜精品一区二区三区在线观看 | 欧美日本中文字幕 | 99视频网址| 天天草天天干天天 | 欧美一区在线观看视频 | 日韩欧美精品电影 | 国产噜噜噜 | 久久久久免费电影 | 久久久久成人免费 | 黄色久| 久草最新 | 香蕉久久久 | 成人免费一区二区 | 亚洲精品无码不卡在线播放he | 视频一区二区三区在线播放 | arabxxxxvideos| 久草成人在线观看 | av在线视 | 久久影院国产精品 | 午夜久久视频 | 精品亚洲视频在线 | 91久久线看在观草草青青 | 性猛交ⅹxxx乱巴西 在线播放中文 | 精品国产99久久久久久宅男i | 日韩毛片在线看 | 极品xxxx欧美一区二区 | 毛片免费观看日本中文 | 中文字幕在线观看视频www | xnxx 日本免费 | 欧美人禽| 精品呦女 | 调教小男生抽打尿孔嗯啊视频 | 中文字幕一二三区芒果 | 99精品国产在热久久婷婷 | 久久精品视频首页 | 福利在线免费 | 蜜桃视频在线观看免费 |