Android官方开发文档Training系列课程中文版:支持不同的设备之支持不同的语言
原文地址 : http://android.xsoftlab.net/training/basics/supporting-devices/index.html
支持不同的設(shè)備
在世界上,Android設(shè)備以很多種形狀和尺寸呈現(xiàn)。正因?yàn)橛羞@么多種設(shè)備,你的應(yīng)用有機(jī)會(huì)被巨多的用戶(hù)所使用。為了在Android上盡可能的成功,你的應(yīng)用需要適配花樣繁多的設(shè)備配置。一些重要的點(diǎn)就是你應(yīng)該考慮包含不同的語(yǔ)言、適配各種屏幕尺寸密度、各種各樣的Andorid平臺(tái)版本。
這節(jié)課將會(huì)教你如何利用可替代資源和其它特性等最基本的平臺(tái)特性完成適配,這樣你的APP才可以只用一個(gè)APK就可以在花樣繁多的Android設(shè)備上提供極佳的用戶(hù)體驗(yàn)。
支持不同的語(yǔ)言
這對(duì)于在APP的代碼中使用R.string.xx這種字符串資源并將它們放入一個(gè)額外的文件中來(lái)說(shuō)是最好的練習(xí)。Android使得每一個(gè)Android工程管理這種資源很輕松。
如果你使用的是Android SDK Tools創(chuàng)建的工程,那么在工程的res/目錄下有很多種類(lèi)的資源類(lèi)型。這里有一些默認(rèn)的文件比如res/values/string.xml便是存放字符串資源的地方。
創(chuàng)建本地語(yǔ)言目錄和字符串文件
為了支持更多的語(yǔ)言,在res/目錄下創(chuàng)建一個(gè)包含values,連接符,國(guó)際標(biāo)準(zhǔn)化組織語(yǔ)言編碼作為名稱(chēng)的目錄,舉個(gè)例子,values-es/是一個(gè)包含了以es編碼的本地語(yǔ)言的簡(jiǎn)單資源目錄。Android會(huì)在設(shè)備運(yùn)行的時(shí)候讀取本地語(yǔ)言設(shè)置從而加載合適的本地語(yǔ)言。更多信息請(qǐng)參見(jiàn):Providing Alternative Resources.
如果決定了將要支持哪種語(yǔ)言,只需要?jiǎng)?chuàng)建一個(gè)資源目錄和一個(gè)字符串資源文件:
MyProject/res/values/strings.xmlvalues-es/strings.xmlvalues-fr/strings.xml在合適的文件中為每一個(gè)本地語(yǔ)言添加字符串值。
在運(yùn)行時(shí),Android系統(tǒng)會(huì)基于用戶(hù)的設(shè)備設(shè)置來(lái)選擇適合的字符串資源。
下面是一些不同語(yǔ)言所對(duì)應(yīng)的字符串資源文件:
English (default locale), /values/strings.xml:
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>Note:你可以對(duì)任何資源類(lèi)型使用這種本地限定詞,比如如果你只想將位圖圖像提供給局部的版本就可以這么做。更多信息請(qǐng)參見(jiàn):Localization.
使用字符串資源
你可以在源碼或者XML文件中引用這些字符串資源,字符串資源名稱(chēng)通過(guò)在文件中定義的< string>元素的name屬性定義。
在代碼中,可以通過(guò)語(yǔ)句R.string.< string_name>引用字符串資源。下面是可接受字符串資源的一些方法:
// Get a string resource from your app's Resources String hello = getResources().getString(R.string.hello_world); // Or supply a string resource to a method that requires a string TextView textView = new TextView(this); textView.setText(R.string.hello_world);在其它的XML文件中,可以通過(guò)語(yǔ)句@string/< string_name>引用字符串資源,下面是如何在XML使用字符串值:
<TextView android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/hello_world" />總結(jié)
以上是生活随笔為你收集整理的Android官方开发文档Training系列课程中文版:支持不同的设备之支持不同的语言的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 12.20今日头条实习面试总结-算法工程
- 下一篇: Android官方开发文档Trainin