【 摘 要 】 移动互联网时代已经到来,各种移动终端成为了人们交流与沟通的重要工具,然而少数民族文化信息的传递因为输入法的缺失而受到了一定的限制,推动和发展少数民族文化需要从最基本的文字输入法开始。针对以上问题,本文通过对藏文的特点、藏文文字的组成、国内外对藏文文字信息编码等方面进行了探讨和研究,在此基础上分析了Android系统输入法框架IMF的特点、组成及工作原理。最后依据Android系统输入法的框架通过使用各种开发工具和方法,开发出了一款藏文输入法,并通过了在Android系统终端上的测试。文章阐述了藏文在Android系统下输入法的设计思想以及实现过程,介绍了该技术的设计原理以及流程。
【 关键词 】 软件开发;Android系统;智能终端应用;输入法框架IMF;藏文输入法;系统设计与实现
【 中图分类号 】 TP391.14 【 文献标识码 】 A
1 引言
随着移动互联网时代的到来,各种信息化应用铺天盖地,大量的信息在人群间传递,而少数民族文化也需要一展风采,藏文化作为中华文化的重要成员,在信息时代发展藏民族文化至关重要,而输入法是发展藏文化的基础的基础。从移动终端来看,Android系统与IOS系统独领风骚,可惜Android系统自Android 1.5版本到最新的4.0版本都没有在底层实现对藏文的支持,所以很有必要攻坚克难打造一款好用的、符合藏语特点的藏文输入法。
2 Android系统藏文输入法设计与实现
2.1 Android系统输入法框架IMF
IMF是input method framework的简称, 它是Android 1.5新添加进去的一个重要功能,用来支持软键盘、各种的输入法。按照SDK文档的叙述,一个IMF结构中包含三个主要的部分。
input method manager:管理各部分的交互。它是一个客户端API,是整个输入法框架(IMF)结构的核心,存在于各个应用程序的context中,用来沟通管理所有进程间交互的全局系统服务,可以通过Context.getSystemService()来获取一个InputMethodManager的实例。
input method:实现一个允许用户生成文本的独立交互模块。系统绑定一个当前的输入法。使其创建和生成,决定输入法何时隐藏或者显示它的UI。同一时间只能有一个IME运行。
client application:通过输入法管理器控制输入焦点和IME的状态。一次只能有一个客户端使用IME。
Android系统的客户端控件主要是TextView及其子类,客户端控件是输入法人机交互的起点,客户端控件与输入法服务和输入法应用都有交互操作。Android系统的输入法框架为输入法应用定义了一个基类InputMethodService。InputMethodService提供了一个输入法的标准实现。定义了输入法生命周期内的重要函数,提供给开发人员进行相应的处理。输入法应用的生命周期{3}:
当用户触发输入法显示的时候(客户端控件获得焦点),InputMethodService启动。
1)调用onCreate() 函数,该函数在输入法第一次启动的时候调用,适合用来做一些初始化的设置。
2)调用onCreateInputView() 函数,在该函数中创建KeyboardView并返回。
3)调用onCreateCandidatesView()函数,在该函数中创建候选区实现并返回。
4)调用onStartInputView()函数来开始输入内容。
5)输入结束后调用onFinishInput()函数来结束当前的输入。
6)如果移动到下一个输入框则重复调用onStartInputView和onFinishInput函数。
7)在输入法关闭的时候调用onDestroy() 函数。
2.2 藏文输入法实现
Android系统中藏文输入法要依据Android输入法框架来完成,只不过关键点在于如何将藏文文字实现展现和输入。为了能在通信网络中顺利传输以及防范不规则编码的出现,依据本文开发出的藏文输入法藏文采用Unicode国际编码。整个开发环境基于Windows XP系统,在开发过程中使用的工具有Windows XP 自带计算器、图片制作工具MicroMedia Fireworks、Eclipse工具(eclipse-java-indigo-win32版本)、jdk 1.6、android-sdk-windows平台2.1版本等,而开发所参考的模型为Android系统开源输入法实例。
2.2.1 藏文基本文字编码转换
藏文(Tibetan)Unicode 编码表[范围(0F00-0FFF)共256个],但藏文文字中30个辅音字母、4个元音符号、以及5个反写字母(用以拼外来语)最为常用,大部分常见藏文文字可以由这些基本字组合而成;所以需要将这些基本字根的十六进制Unicode编码进行十进制的转换,以便能在Android系统中识别。转换可以使用windows自带计算器进行转换,部分转换编码对应关系如表1。
2.2.2 藏文基本文字输入法图片制作
由于Android系统底层没有对藏文的支持,如果在开发中直接使用编码的话,最后完成的输入法操作面板为乱码“□”,界面将会无法正常使用,而Android系统中的键盘文件提供了图标功能,通过图标标签就可以将藏文正常显示在键盘面板上。所以还需要将藏文辅音字、元音字等基本字制作成小图片,图片大小可以为17×30像素,格式可以是png或jpg等常见图片格式,文字制作图片可以使用FireWorks、PhotoShop等制图工具,字形可以从该网址查询http://www.marathon-studios.com/unicode/U0F40/Tibetan_Vowel_Sign_O,每次只需要变化该网址中的粗体部分。endprint
2.2.3 藏文输入法实现及测试验证
在eclipse开发环境中将Android系统开源输入法实例进行工程导入,并将制作的全部藏文图标导入res\drawable目录下,然后在res\xml目录下新建键盘文件并将前面转换和制作的图标进行对应,比如:从字形上可以对应的十进制为3904和3984,而其对应的图标为图片a1,代码如下:
其他藏文基本字以此类推,主要是做好全键盘的布局,以方便使用者使用。
然后在SoftKeyboard.Java中进行新建键盘文件的加载,定义全局私有变量private LatinKeyboard mQwertyKeyboard;在onInitializeInterface()方法中进行初始化mQwertyKeyboard = new LatinKeyboard(this, R.xml.qwerty)。最后在onKey(int primaryCode, int[] keyCodes)方法中进行键盘的点击切换的代码开发;以此,便可以完成一个集藏文、英文字母、数字、符号为一体的藏文输入法。测试时可以在Eclipse开发环境中新建Android project工程,在工程中使用EditText组件,并将其字体显示属性设置setTypeface(tf),tf是Typeface实例,需要引入相应的藏文字库,字库可以选择微软的Himalaya字库,经过测试可以完美的实现藏文文字的输入。最终的输入法界面及测试如图2所示。
3 结束语
该藏文输入法利用了Android系统输入法框架,在其基础之上通过一些方法巧妙的方法实现了藏文文字的展示及输入,并且采用了Unicode编码,符合国际国家通信网络要求,完全可以在实际通信网络中使用。虽然此输入法简单,但可以作为其他藏文输入法的基础,在此基础上可以研究联想字词藏文输入法和手写输入法,并且还可以作为开发其他少数民族文字Android系统输入法的参考。
参考文献
[1] 藏文 [EB/OL].百度百科.
[2] 吴兵,江荻.藏文国际编码的发展与技术应用[EB/OL].中国知网.
[3] Android平台输入法开发解析 [EB/OL].百度百科.
[4] 太清-太清撰写:藏文字母表 [EB/OL].
作者简介:
张继伟(1983-),男,甘肃甘谷人,本科,通信工程师;主要研究方向和关注领域:软件设计、开发,通信技术、通信行业业务及应用系统、信息化技术及应用。endprint
2.2.3 藏文输入法实现及测试验证
在eclipse开发环境中将Android系统开源输入法实例进行工程导入,并将制作的全部藏文图标导入res\drawable目录下,然后在res\xml目录下新建键盘文件并将前面转换和制作的图标进行对应,比如:从字形上可以对应的十进制为3904和3984,而其对应的图标为图片a1,代码如下:
其他藏文基本字以此类推,主要是做好全键盘的布局,以方便使用者使用。
然后在SoftKeyboard.Java中进行新建键盘文件的加载,定义全局私有变量private LatinKeyboard mQwertyKeyboard;在onInitializeInterface()方法中进行初始化mQwertyKeyboard = new LatinKeyboard(this, R.xml.qwerty)。最后在onKey(int primaryCode, int[] keyCodes)方法中进行键盘的点击切换的代码开发;以此,便可以完成一个集藏文、英文字母、数字、符号为一体的藏文输入法。测试时可以在Eclipse开发环境中新建Android project工程,在工程中使用EditText组件,并将其字体显示属性设置setTypeface(tf),tf是Typeface实例,需要引入相应的藏文字库,字库可以选择微软的Himalaya字库,经过测试可以完美的实现藏文文字的输入。最终的输入法界面及测试如图2所示。
3 结束语
该藏文输入法利用了Android系统输入法框架,在其基础之上通过一些方法巧妙的方法实现了藏文文字的展示及输入,并且采用了Unicode编码,符合国际国家通信网络要求,完全可以在实际通信网络中使用。虽然此输入法简单,但可以作为其他藏文输入法的基础,在此基础上可以研究联想字词藏文输入法和手写输入法,并且还可以作为开发其他少数民族文字Android系统输入法的参考。
参考文献
[1] 藏文 [EB/OL].百度百科.
[2] 吴兵,江荻.藏文国际编码的发展与技术应用[EB/OL].中国知网.
[3] Android平台输入法开发解析 [EB/OL].百度百科.
[4] 太清-太清撰写:藏文字母表 [EB/OL].
作者简介:
张继伟(1983-),男,甘肃甘谷人,本科,通信工程师;主要研究方向和关注领域:软件设计、开发,通信技术、通信行业业务及应用系统、信息化技术及应用。endprint
2.2.3 藏文输入法实现及测试验证
在eclipse开发环境中将Android系统开源输入法实例进行工程导入,并将制作的全部藏文图标导入res\drawable目录下,然后在res\xml目录下新建键盘文件并将前面转换和制作的图标进行对应,比如:从字形上可以对应的十进制为3904和3984,而其对应的图标为图片a1,代码如下:
其他藏文基本字以此类推,主要是做好全键盘的布局,以方便使用者使用。
然后在SoftKeyboard.Java中进行新建键盘文件的加载,定义全局私有变量private LatinKeyboard mQwertyKeyboard;在onInitializeInterface()方法中进行初始化mQwertyKeyboard = new LatinKeyboard(this, R.xml.qwerty)。最后在onKey(int primaryCode, int[] keyCodes)方法中进行键盘的点击切换的代码开发;以此,便可以完成一个集藏文、英文字母、数字、符号为一体的藏文输入法。测试时可以在Eclipse开发环境中新建Android project工程,在工程中使用EditText组件,并将其字体显示属性设置setTypeface(tf),tf是Typeface实例,需要引入相应的藏文字库,字库可以选择微软的Himalaya字库,经过测试可以完美的实现藏文文字的输入。最终的输入法界面及测试如图2所示。
3 结束语
该藏文输入法利用了Android系统输入法框架,在其基础之上通过一些方法巧妙的方法实现了藏文文字的展示及输入,并且采用了Unicode编码,符合国际国家通信网络要求,完全可以在实际通信网络中使用。虽然此输入法简单,但可以作为其他藏文输入法的基础,在此基础上可以研究联想字词藏文输入法和手写输入法,并且还可以作为开发其他少数民族文字Android系统输入法的参考。
参考文献
[1] 藏文 [EB/OL].百度百科.
[2] 吴兵,江荻.藏文国际编码的发展与技术应用[EB/OL].中国知网.
[3] Android平台输入法开发解析 [EB/OL].百度百科.
[4] 太清-太清撰写:藏文字母表 [EB/OL].
作者简介:
张继伟(1983-),男,甘肃甘谷人,本科,通信工程师;主要研究方向和关注领域:软件设计、开发,通信技术、通信行业业务及应用系统、信息化技术及应用。endprint