你可以根据产品界面语言以及硬件配置设置不同的资源。注意,虽然你可以包含不同的字串,布局以及其他资源, 但开发包(SDK)不会给你显式的方法去指定不同的资源去加载。Android检测你的硬件以及位置信息选择合适的设置 去加载。用户可以到设备上的设置界面去选择不同的语言。
要包含不同的资源,在同一目录下创建并行的文件夹,在每个文件夹后加上合适的名字,这个名字能表明一些配置 信息(如语言,原始屏幕等等)。例如,这里的项目字符串文件一个是英文版的,另一个是法文版的:
MyApp/ res/ values-en/ strings.xml values-fr/ strings.xml
Android支持不同类型的修饰语,并可以加多条在文件夹名的后面, 修饰语之间以破折号分开。例如:一个绘图资源 类指定全部配置名称命名会像这样:
MyApp/ res/ drawable-en-rUS-port-160dpi-finger-keysexposed-qwerty-dpad-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 , 等等。大分辨率需要开始指定。
|
这个列表不包含一些特殊的参数,如载体,商标,设备/硬件,制造商。任何应用程序需要知道的信息都在资源修饰语里有说明。
这里有一些通用的关于资源目录的命名指导:
drawable
的目录必须命名为
drawable-port
, 而不是drawable-PORT
。
drawable-port
以及
drawable-PORT
, 甚至故意将"port" 和 "PORT"指为不同的参数也不可以。drawable-rEN-rFR/
)
drawable-en-rUS-land
意思在US-English的机器里载入风景视图。
res/
目录下.一些目录是不能嵌套的(这样 res/drawable/drawable-en
是不可以的)
MyApp/res/drawable-port-92dp/myimage.png
R.drawable.myimage
(code)@drawable/myimage
(XML) Android将会挑出哪些基本资源文件在运行时会被使用,这依靠当前的配置。 选择过程如下:
MyApp/res/drawable-port-92dpi/
.
MyApp/res/drawable/myimage.png MyApp/res/drawable-en/myimage.png MyApp/res/drawable-port/myimage.pngMyApp/res/drawable-port-92dpi/myimage.png
MyApp/res/drawable-en/
和 MyApp/res/drawable-port/
.
这个目录 MyApp/res/drawable/
可以被删除了,因为当另外一个有一次匹配正确,而它没有。
MyApp/res/drawable/myimage.pngMyApp/res/drawable-en/myimage.png MyApp/res/drawable-port/myimage.png
MyApp/res/drawable-en/myimage.pngMyApp/res/drawable-port/myimage.png