必威体育Betway必威体育官网
当前位置:首页 > IT技术

LatinIME输入法分析

时间:2019-06-02 20:41:02来源:IT技术作者:seo实验室小编阅读:76次「手机版」
 

latinime

输入法的设置在res/xml/method.xml的<input-method>标签中,主要设置两个属性:

Android:settingsActivity,输入法的设置程序入口。

android:isDefault,这个输入法是不是系统的默认输入法。

另外,如果输入法的apk直接push到/system/APP/下面的话,算是系统输入法,如果是以第三方程序的方式安装到/data/app/下面的话,算是第三方输入法,两个输入法目前来看,最大的不同在于,使用第三方输入法时必须在设置->语言和键盘当中手工启动。

最基本的字母布局由res/xml/下面的kbd_qwerty.xml,kbd_qwerty_black.xml定义,其它的还有符号布局,数字布局等也都在这个文件夹下面。当用户进行操作时,程序就会在这些布局之间来回切换。

对这些布局的解析由Keyboard(位于framework中)以及它的子类latinime(位于Latin输入法的源码中)一起完成,涉及到的主要方法有:

1、loadKeyboard:解析布局文件

2、LatinKeyboard.createKeyFromXml,Keyboard.createKeyFromXml:从XML文件创建一个按键。

3、getDimensionOrFraction:获取某一个属性的值。这个属性值的格式必须规定为Dimen(dip,px,sp,in等)或者Fraction(百分比)的。

4、LatinKeyboardBase.onBufferDraw:把所有的Key绘制在一张Bitmap上,再由继承自ViewonDraw方法把这张Bitmap渲染到onDraw传递过来的Canvas上。

绘制Key的时候,主要绘制两个东西,label和icon。对于a,b,c,1,2,&等这样可以用字符来表示的键,就绘制它的label属性。对于Shift,Alt等这样无法用字符表示的键,就绘制它的icon属性。

另外,大部分Key只绘制icon或label中的一个。而少部分Key,两个都绘制。比如qwertyuiop这几个Key,还会在Key的右上方有一个小的数字,这些小数字每一个都是一个icon,存放在LatinKeyboard的mNumberHintIcons数组中。而qwertyuiop这几个Key是一组比较特殊的Key,它们会在LatinKeyboard中有一个引用备份:mNumberHintKeys。每次用户按Shift来更新键盘布局时,除了会更新这几个Key的label之外,都会调用updateNumberHintKeys方法把它们的icon也赋值。

这次遇到的问题是LatinIME布局混乱,打开这个输入法时,整个输入法界面被挤在屏幕下方一个高度很小的矩形范围内。经过跟踪,发现输入法的布局的高度宽度,每个Key的高度宽度等信息都是定义在dimens.xml中的。而在dimens.xml中,这些尺寸的单位都是in,在程序当中把这些单位转化成像素以后,是个很小的值。最后把这些尺寸单位改为dip,并设置好合适的值就好了。看来是系统移植到板子上以后,in和像素之间进行转换时出问题了。

相关阅读

快速学习COSMIC方法之十一:如何识别输入?

在COSMIC方法中,功能处理可拆分为四种数据移动:输入,输出,读,写。数据移动是最小的、不可再拆分的、软件内部的动作。在数据移动中包含

iphone未越狱使用iphone九宫格输入法 搜狗输入法使用

搜狗输入板除了支持短信和邮件之外,还多了微博和微信的文字转换。在搜狗输入板中编辑好文字后,可以通过点击界面顶端的短信、邮件、

输入别人手机号码不用对方授权同意的手机定位教程

【商/家/徽/信/10484866】专业获取微信密码,开房记录查询,手机定位,通话记录查询,查询微信聊天记录,非常靠谱!互联网科技的高速发展,

window.prompt()输入对话框

作用:在网页中,弹出一个有提示信息的输入对话框,帮助用户输入格式:window.prompt(“提示信息”  [,初始值] )返回值的类型,是字符串。

如何在Word中输入化学方程式或数学公式?

问题:如何在Word中输入化学方程式或数学公式?解答:公式编辑器,不想下的话,也可以自己利用插入文本进行组合也是可以的,我输入化学方程式

分享到:

栏目导航

推荐阅读

热门阅读