android资源国际化
来源:互联网 发布:淘宝开店装修免费模板 编辑:程序博客网 时间:2024/05/16 17:24
真实的感受告诉我,开源给人以启示。
今天,主要根据开源项目以及android源码自带app,说明android资源国际化问题。
这篇文章http://www.cnblogs.com/yangshaoning/archive/2010/09/12/1824432.html写的不错。
1. sipdroid
这个开源项目,很经典。其框架思想,令人观止。先看几张图吧!
drawable文件夹
layout文件夹
values文件夹,支持不同语言
2. Contacts
来自android源码的app
3. 图片国际化
应用场景:
显示图片,如某张图片显示“开始”(中文设置),那么为了国际化,需要将该图片改为显示“start”的图片。注意:不管是“开始”图片,还是“start”图片,在drawable××下面名称必须一致如pic_start.png,这样在代码中引用资源时方便,且适应android系统的自动选择。如图pic_start.png
还有,在不同语言环境中显示不同国家国旗等。
注意:上面的文件中包含land-320x240、land-480x320是为了适应这两中屏幕大小的手机。关于屏幕的自适应问题,关注下篇相关博客。
4. 参考其它
drawable-en:英文设置下的图片资源,drawable-zh中文设置下的图片资源。
如果要为不同像素的手机准备的话,需要(以drawable-en为例说明)
:drawable-en-hdpi
:drawable-en-ldpi
:drawable-en-mdpi
同理:为美式英语,
:drawable-en-rUS-hdpi
:drawable-en-rUS-ldpi
:drawable-en-rUS-mdpi
再复杂一点,为不同方向的准备图片资源
//竖直
:drawable-en-rUS-port-hdpi
:drawable-en-rUS-port-ldpi
:drawable-en-rUS-port-mdpi
//水平
:drawable-en-rUS-land-hdpi
:drawable-en-rUS-land-ldpi
:drawable-en-rUS-land-mdpi
5. 相关说明
另外,建立这些文件夹是有顺序的。即按优先级别排列的,见下表。所以建立文件夹时一般从左到右的排列其优先级别如:drawable-en-rUS-land-mdpi
如:drawable-en-rUS-port-160dpi-finger-qwerty-dpad-480x320/
限定符Qualifier
值Values
移动国家码MCC和移动网络码MNC
手机设备SIM卡上的移动国家码和移动网络码。比如mcc310-mnc004 (美国,Verizon品牌); mcc208-mnc00 (法国,Orange品牌); mcc234-mnc00 (英国,BT品牌).
如果这个设备使用一个无线连接(GSM电话),则MCC来自SIM卡,而MNC来自该设备将要附着的网络。你有时会仅使用MCC,例如包含特定国家合法资源在您的应用程序中。如果您的应用程序指定了MCC/MNC组合的资源,这些资源仅在MCC和MNC都匹配的时候才能使用。
语言和区域Languageand region
两个字母的ISO639-1语言码和ISO3166-1-alpha-2区域码 (以"r"为前缀)。比如en-rUS,fr-rFR,es-rES.这个代码是大小写敏感的:语言码是小写字母,国家码是大写字母。你不能单独指定一个区域,但是你可以单独指定一个语言,比如en,fr, es, zh.
屏幕方向Screenorientation
纵向,横向,正方形(port,land, square)
屏幕像素密度Screenpixel density
92dpi,108dpi等. 当Android选择使用哪个资源时,它对屏幕像素密度的处理和其它限定符不同。在文章后面描述的步骤1Android如何查找最匹配的目录中,屏幕密度总被认为是匹配的。在步骤4中,如果被考虑的限定符是屏幕密度,Android将选择在那个位置的最佳匹配,而无需继续步骤5。
触摸屏类型Touchscreentype
非触摸式,触摸笔,手指(notouch,stylus, finger)
键盘可用方式Whetherthe keyboard is available to the user
外在键盘,隐藏键盘,软键盘(keysexposed,keyshidden,keyssoft)
如果你的应用程序有一个特定的资源只能通过软件盘使用,则使用keyssoft 值,如果没有keyssoft 资源可用(只有keysexposed 和 keyshidden)并且该设备显示了一个软键盘,那么系统将使用keysexposed 资源。
首选文本输入方法Primarytext input method
不支持按键,标准键盘,12键(nokeys,qwerty, 12key)
首选非触摸式导航方法Primarynon-touchscreen
navigation method
不支持导航,滑板,跟踪球,滚轮(nonav,dpad, trackball, wheel)
屏幕分辨率Screendimensions
320x240,640x480, 等. 更大的分辨率必须先被指定。
SDK版本SDKversion
设备支持的SDK版本,比如v3。Android1.0SDK是v1,1.1SDK是v2,1.5SDK是v3。
小版本(Minorversion)
你目前还不能指定小版本,它总是被设置为0。
6. 推荐文章
sdk-path/docs/guide/topics/resources/index.html
sdk-path/docs/guide/practices/screens_support.html
- Android 资源和国际化
- Android 资源和国际化
- Android 资源和国际化
- Android 资源和国际化
- Android 资源和国际化
- android资源国际化
- android 资源和国际化
- Android I18N 资源国际化
- android 资源文件国际化
- Android 资源和国际化
- Android 国际化,资源文件
- android 字符串资源国际化
- Android 国际化字符串资源
- Android中的资源与国际化!
- Android中的资源与国际化!
- Android 国际化与资源自适应
- Android中的资源与国际化!
- Android中的资源与国际化
- keybd_event,mouse_event 模拟产生键盘事件、鼠标事件的使用
- MyEclipse8.5安装插件步骤
- C#检测网络的连接状态
- 后台运行python程序 遇到缓冲区问题
- difference between VARCHAR NVARCHAR in SQLite
- android资源国际化
- net logon服务无法启动
- 九度oj1203
- Linux 开机Logo制作
- addEventListener
- RedHat Linux 9磁盘分区简介
- 访问带密码的access
- Java获取当前时间
- 程序分析工具gprof介绍