扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
使用 ResourceManager
现在我将演示如何使用 ResourceManager 来管理不同地区的资源文件。
要用不同的语言来显示本地字符串,就需要准备不同地区的资源文件。资源文件包括要本地化的字符串,如果有图片的话,也要将其包含在资源文件里面。资源文件就像 Java SE 的属性文件,但是是二进制格式。它有以下优点:
对于条件有限的设备来说,这些优点是十分重要和有效的。
现在让我们编写一个简单的 MIDlet,根据地区显示字符串和图片。图 5 显示了资源文件结构。在以下步骤中,我将使用 WebSphere Everyplace Micro Environment 6.1 和 IBM WebSphere Everyplace Micro Environment 移植包的 JSR-238 库。
|
步骤 1:准备资源文件
二进制的资源文件必须遵守严格的格式。(参考 JSR-238 规范)。可以使用任何一种二进制文件编辑器或者 Nokia JSR-238 RI 创建资源文件。
为演示起见,我使用 Nokia JSR-238 RI 来创建二进制资源文件,如 图 6 所示。我想为 zh-TW,de-DE 和 es-ES 这几个地区显示 “Welcome” 字符串和一幅图片。可以阅读 Nokia 238 RI 的自述文件了解相关步骤,但基本上,您需要为字符串和图片编写一个 xml 资源文件,运行 ResourceMaker 工具获得二进制文件。
图 6. Nokia JSR-238 RI 示例资源文件
步骤 2:将二进制资源文件放在正确的文件结构中
在 图 7 中,采用当地语言的字符串存储在一个地区文件夹中,图片的二进制文件存储在 \global\WelcomeMidlets.res 中。您不会希望图像的二进制文件存储在每一个资源文件中!
图 7. 将资源文件放到正确的结构中
步骤 3:编写 MIDlet
为了从资源文件检索字符串和图片,您需要执行下列步骤:
表 1. ResourceManager 方法
public static final ResourceManager | getManager(java.lang.String baseName) |
public static final ResourceManager | getManager(java.lang.String baseName, java.lang.String locale) |
以下代码返回具有 “WelcomeMidlet” 基本名称以及系统默认地区的 ResourceManager 实例:
res = ResourceManager.getManager("WelcomeMidlet"); |
使用以下代码检索字符串:
//STRING_WELCOME is the resource id in the resource file; in this case 1 StringItem desc = new StringItem(res.getString(STRING_WELCOME),""); |
使用下列代码检索图片:
//IMAGE_EILEAN is the resource id in resource file, in this case 111 byte[] imageData = res.getData(IMAGE_EILEAN); |
清单 1 演示了这些步骤。
清单 1. 字符串和图片检索
try { //Get the resource manager with the base name and default systemlocale res = ResourceManager.getManager("WelcomeMIDlet"); //Retrieve the welcome string StringItem desc = new StringItem(res.getString(STRING_WELCOME),""); fmMain = new Form(res.getString(STRING_WELCOME)); fmMain.append(desc); //Retrieve the Eilean image byte[] imageData = res.getData(IMAGE_EILEAN); Image eilean = Image.createImage(imageData, 0, imageData.length); fmMain.append(eilean); }catch(ResourceException re) { System.out.println("Exception when retrieving resources"); re.printStackTrace(); } |
表 2 展示了在 zh-TW 和 de-DE 地区显示 “Welcome MIDlet” 的结果。
表 2. Welcome MIDlet
zh-TW 地区 | de-DE 地区 |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者