latinime输入法研究
研究了下http://download.csdn.net/download/joyfly2008/5628655这位兄弟的文档写的很详细
另外:
输入法的设置在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输入法研究相关推荐
- amlogic平台,给LatinIME输入法添加语言
amlogic平台,给LatinIME输入法添加语言 1.frameworks\base\packages\SettingsProvider\res\values\defaults.xml 添加 &l ...
- 基于文本服务框架的拼音输入法研究与实现
摘要:目前的输入法大多采用输入法管理器-输入法编辑器(IMM-IME)进行开发,对于微软发布的新型输入法技术―文本服务框架(TSF)的研究一直比较滞后,该文论述了 TSF 的基本构成.主要接口.输入法 ...
- LatinIME输入法分析
输入法的设置在res/xml/method.xml的<input-method>标签中,主要设置两个属性: android:settingsActivity,输入法的设置程序入口. and ...
- Android AOSP LatinIME输入法自定义图片按钮
文章目录 前言 一.引进图片按钮 二.添加映射 三.attrs.xml 四.KeyboardIconsSet.java 五.Constants.java 六.KeyboardCodesSet.java ...
- LatinIME输入法的一些总结
1.关于输入法的一些设置重要文件 res/xml/method.xml 在该文件中在前面的博客http://blog.csdn.net/holdrise/article/details/8792294 ...
- 笔画输入法电脑版_太有才!浙江路政员发明汉字码输入法
日前,新昌县路政员王治阳终于拿到了发明名称为"首笔音素字母注音输入法"的发明专利证书.这项发明是在他10年前的原始性发明--汉字码输入法基础上的再创新改进,为汉字输入注入了高效的& ...
- Android 输入法增加语言
Android源码中默认的有三种输入法:英文,中文,日文.对应的工程代码路径为: <android_root>/packages/inputmethods/LatinIME/ <an ...
- Android 10 去掉系统默认谷歌输入法
代码路径:build/make/target/product/automotive_product.mk 1.在automotive_product.mk文件中添加LatinIME 输入法 PRODU ...
- Android 平台开发一个输入法
Android 1.5 新特色之一就是输入法框架(Input Method Framework,IMF),正是它的出现,才为诞生不带实体键盘的设备提供了可能.IMF设计用来支持不同的IME,包括了so ...
最新文章
- (完全解决)Precision and F-score are ill-defined for being 0.0 in labels with no predicted samples.
- php后台守护进程+进程信号处理
- 中缀转后缀表达式并求值
- mysql日志是什么格式_Mysql日志的三种格式
- 10.ASCII码对照
- JavaSE 基础面试题
- 强化学习-动态规划_强化学习-第5部分
- Python单例模式的4种实现方法
- stl swap函数_vector :: swap()函数以及C ++ STL中的示例
- ARM uboot中的.lds
- Hyperreal number
- fragment中文网_Android使用Fragment打造万能页面切换框架
- java轮播图_RxJava 实现ViewPager的轮播图
- HIVE学习之(三)
- ecshop mysql 操作_ecshop数据库操作函数
- 视觉的目的是什么?从监督学习到对比学习,回顾CV发展史
- 最全Airtest接口功能介绍和示例总结,新手同学千万不能错过呀!(一)
- Python抓取某东电商平台数据
- 外观模式 Facade
- mysqlin会使用索引吗