`
isiqi
  • 浏览: 15999563 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

android输入法02:openwnn源码解析04—设置界面

 
阅读更多

这是openwnn源码解析的第四篇,现在主要来介绍一下其设置界面。通过设置界面,大家可以深入了解输入法具有的功能。
最近看到网上有转载我的文章,但没有注明出处。由于这是系列文章单单转载一两篇读者也不一定看得懂。因此在这里做一个标记,如果看到转载的同学,可以访问我的博客http://blog.csdn.net/xianming01

1、功能介绍

还是一样,由于我没有编译openwnn源码,因此这里的例子以android模拟器自带的openwnn日文输入法为例(android2.2)。

其设置界面如下:


其中“日语用户词典”和“英语用户词典”,你点进去会是一个词典编辑页面。

2、代码解析

这里涉及到的代码有几个:OpenWnnControlPanelJAJP.java,openwnn_pref_ja.xml;另外对与词典编辑,包含UserDictionaryToolsEdit.java,UserDictionaryToolsList.java,UserDictionaryToolsListFocus.java,UserDictionaryToolsListJAJP.java,UserDictionaryToolsEditJAJP.java,ClearLearnDictionaryDialogPreferenceJAJP.java,ClearUserDictionaryDialogPreferenceJAJP.java;以及KeyboardListPreferenceJAJP.java这个键盘配置项(这个配置项貌似就是传说中的皮肤功能)。

具体android的这种配置方式,是利用SharedPreferences和PreferenceActivity这两个类来实现的。其具体实现原理,可以参看本人的博客《android基础知识07:SharedPreferences和PreferenceActivity》。

2.1OpenWnnControlPanelJAJP.java

这里的代码比较简单

程序通过配置文件直接生成一个PreferenceActivity。

2.2Preferencescreen中利用intent跳转activity

这里需要注意一个问题,就是说在openwnn_pref_ja.xml中有一个比较特别的配置项。你点击“日语用户词典”和“英语用户词典”,它转到的是一个新的Activity。我们来看一下这些配置项:

这里涉及如何在PreferenceScreen中转到一个activity的操作,具体可以参看我的博文《android技巧01:Preferencescreen中利用intent跳转activity

2.3 皮肤

在这个设置项里,“键盘自定义”这个选项是比较特殊的,通过它你可以设置输入法的皮肤。这里我回到DefaultSoftKeyboard.java类中initView函数是这样初始化皮肤的:

这实际上就是根据配置项,读取所设置的皮肤。

另外,在openwnn_pref_ja.xml文件中,对皮肤选项的设置配置项是这样的:

这里实际上是自定义了一个ListPreference。这个类源码如下:

这里实际上只是重载了onDialogClosed函数,当你关闭了键盘自定义对话框后,通知输入法,键盘配置已经改了。(具体这个事件是如何生效的,也就是前端如何根据这个信息来修改键盘的代码我还没看。

3、其他

日文设置界面,除了以上介绍的配置项以外,比较麻烦的是关于词典的配置项。这一点,我们会在后面的文章介绍。

本文主要是介绍了日文输入法配置项中的难点。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics