• 沒有找到結果。

对于不同的语言和设置支持不同的资源

在文檔中 android 中文文档什么是 (頁 74-80)

用相似的方法,这段代码能将你的屏幕变成系统定义的标准的“绿色背景”:

public class MyActivity extends Activity {

public void onStart() {

super.onStart();

setTheme(android.R.style.Theme_Black);

} }

对于不同的语言和设置支持不同的资源

你可以根据产品界面语言以及硬件配置设置不同的资源。注意,虽然你可以包含 不同的字串,布局以及其他资源,但开发包(SDK)不会给你显式的方法去指定 不同的资源去加载。Android检测你的硬件以及位置信息选择合适的设置去加载。

用户可以到设备上的设置界面去选择不同的语言。

要包含不同的资源,在同一目录下创建并行的文件夹,在每个文件夹后加上合适 的名字,这个名字能表明一些配置信息(如语言,原始屏幕等等)。例如,这里 的项目字符串文件一个是英文版的,另一个是法文版的:

MyApp/

res/

values-en/

strings.xml

values-fr/

strings.xml

Android支持不同类型的修饰语,并可以加多条在文件夹名的后面, 修饰语之

间以破折号分开。例如:一个绘图资源类指定全部配置名称命名会像这样:

MyApp/

res/

drawable-en-rUS-port-160dpi-finger-keysexposed-qwerty-dpa d-480x320/

更典型的,你可以仅仅指定部分特定的配置选项。只要保证所有的数值都是按顺 序排列:

MyApp/

res/

drawable-en-rUS-finger/

drawable-port/

drawable-port-160dpi/

drawable-qwerty/

修饰语

语言 两个小写字母 ISO 639-1。例如: en, fr, es

地区 两个大写字母加上一个小写字母'r' ISO 3166-1-alpha-2。 例 如: rUS, rFR, rES

屏幕方向 port, land, square ?

屏幕像素 92dpi, 108dpi, 等等。

触摸屏类型 notouch, stylus, finger

键盘是否有效 keysexposed, keyshidden

基本文本输入 模式

nokeys, qwerty, 12key

无触摸屏的主 要

导航模式

notouch, dpad, trackball, wheel

屏幕分辨率

320x240, 640x480, 等等。大分辨率需要开始指定。

这个列表不包含一些特殊的参数,如载体,商标,设备/硬件,制造商。任何应 用程序需要知道的信息都在资源修饰语里有说明。

这里有一些通用的关于资源目录的命名指导:

各个变量用破折号分开 (每个基本的目录名后跟一个破折号)

变量大小写敏感(其大小写法必须始终一致)

例如,

o 一个drawable 的目录必须命名为 drawable-port, 而不是 drawable-PORT。

o 你不能有两个目录命名为 drawable-port 以及

drawable-PORT, 甚至故意将"port" 和 "PORT"指为不同的参数也 不可以。

一个式子里同一个类型修饰语中只有一个值是有效的(你不能指定像这样 drawable-rEN-rFR/)

你可以指定多个参数去定义不同的配置,但是参数必须是上面表格里的。

例如, drawable-en-rUS-land 意思在US-English的机器里载入风 景视图。

Android会寻找最适合当前配置的目录,这会在下面描述

表格里所列的参数是用来打破平衡以防止多重路径限制。 (看下面的例 子)

所有目录,无论是限制的,还是不限制的,只要在 res/ 目录下.一些目 录是不能嵌套的(这样 res/drawable/drawable-en是不可以的)

所有的资源在被代码引用中最好都使用简单的、不加修饰的名字,如果一 个资源这样命名:

MyApp/res/drawable-port-92dp/myimage.png 它将这样被引用:

R.drawable.myimage (code) @drawable/myimage (XML)

Android 如何找到最合适的目录

Android将会挑出哪些基本资源文件在运行时会被使用,这依靠当前的配置。选

择过程如下:

1. 删去一些和当前设备配置不符合的资源。例如,如果屏幕的像素是 108dpi,这可以删除 MyApp/res/drawable-port-92dpi/.

2. MyApp/res/drawable/myimage.png 3. MyApp/res/drawable-en/myimage.png 4. MyApp/res/drawable-port/myimage.png

5. MyApp/res/drawable-port-92dpi/myimage.png

6. 挑出一些最经常符合配置的资源。例如,如果我们的地区是 en-GB, 方

向是 port,那我们有两个符合配置的选项:

MyApp/res/drawable-en/ 和 MyApp/res/drawable-port/. 这

个目录 MyApp/res/drawable/ 可以被删除了,因为当另外一个有一 次匹配正确,而它没有。

7. MyApp/res/drawable/myimage.png 8. MyApp/res/drawable-en/myimage.png 9. MyApp/res/drawable-port/myimage.png

10. 根据配置的优先级选取最终适合的文件,它们按顺利被排列在上面的表格 里。更确切得说,语言匹配比方位匹配更重要, 所以我们可以通过选择语 言文件来平衡, MyApp/res/drawable-en/.

11. MyApp/res/drawable-en/myimage.png 12. MyApp/res/drawable-port/myimage.png

术语

资源系统将一系列分散内容集合在一起形成最终的完整的资源功能,去帮助我们 了解整个系统。这里有一些核心概念以及组件的概要说明,你在开发中将可能使 用到:

最终文件: 应用程序的独立的数据包。这包含所有从java程序编译成的目标文

件,图像 (例如PNG图片), XML文件等等。这些文件以一种特定的方式组织

在一起,在程序打包最后时,它们被打包成一个独立的ZIP文件。

aapt: Android最终文件打包工具。这个工具产生最终程序的ZIP文件。除了将 最终的元数据文件打包在一起,它也解析资源定义到最终的二进制数据里。

资源表:aapt工具产生的特殊的文件,描述了所有在程序/包里的资源。这个文件 可以通过资源类来访问;它不能直接和应用程序接触。

资源: 资源表里一条记录描述的是单一的命名值。大体上, 资源分成两种:基本 的和包装的.

资源标识符: 在资源表里所有的资源都被唯一的整数标识着。所有的代码中(资 源描述,XML 文件,Java源代码)你可以直接使用符号名代替真实的整数数值。

基本资源: 所有基本资源都可以被写成一个简单的字串,使用一定的格式可以描 述资源系统里各种不同的基本类型: 整数,颜色,字串,其他资源的引用,等 等。像图片以及XML描述文件这些复杂资源,被以基本字串资源储存,它们的 值就是相关最终数据文件的路径。

包装资源: 有一种特殊类型的资源,不是简单的字符串,而是有一个随意的名字

资源引用 这份文档提供了不同类型资源的详细列表,并提供了如何在Java代

在文檔中 android 中文文档什么是 (頁 74-80)

相關文件