LatinIME学习-Latin
Latin是android输入法框架一个InputMethodService实现类,类整体还是很简单的,执行过程已经android封装的接口限定好了。
之前移植输入法到电视上面,核心修改就是修改onKeyDown()和onLongPress()。android框架决定,所有键值都会先分发到输入法中,所以就可以通过记录界面的当前状态,结合键值,做出
一个假焦点的效果,达到移植的目的。
模板方法&&工具类
private final TreeSet<Long> mCurrentlyPressedHardwareKeys = CollectionUtils.newTreeSet();
public static <E> TreeSet<E> newTreeSet() {return new TreeSet<E>();}
工具类CollectionUtils中对newTreeSet()的实现
很简单,使代码看上去很优雅。不会见到很长的new xxx();
对于模板地使用,还有很多,接着又有一处
public class StaticInnerHandlerWrapper<T> extends Handler
public static final class UIHandler extends StaticInnerHandlerWrapper<LatinIME>
有很多地方都用到了handle这个结构,这里通过类模板,使整体看上去很规范。
模板,顾名思义就是可以定义一个类型,这个类型有很多共性,这个共性看起来就是代码结构差不多。比如加法、减法、乘法,都是两个数做运算就可以使用模板
来定义,除法有点不一样,需要对除数做非零验证。
转载于:https://www.cnblogs.com/mltx/articles/5388062.html
LatinIME学习-Latin相关推荐
- LatinIME学习——Manifest篇
前言: 接触这个工程是因为,需要把这个输入法移植到智能电视机上面.移植到电视机上面主要要解决的问题就是支持遥控器的操作. 在修改的过程中,觉得这是一个很标准的android工程,里面也有一些比较新奇的 ...
- LatinIME输入法分析
输入法的设置在res/xml/method.xml的<input-method>标签中,主要设置两个属性: android:settingsActivity,输入法的设置程序入口. and ...
- LatinIME输入法的一些总结
1.关于输入法的一些设置重要文件 res/xml/method.xml 在该文件中在前面的博客http://blog.csdn.net/holdrise/article/details/8792294 ...
- latinime输入法研究
研究了下http://download.csdn.net/download/joyfly2008/5628655这位兄弟的文档写的很详细 另外: 输入法的设置在res/xml/method.xml的& ...
- 102页PPT,DeepMind强化学习最新进展,含图文、公式和代码
来源:专知 本文多图,建议阅读9分钟 本文提供涵盖了强化学习RL基础概念.策略梯度.动态规划以及D4PG.R2D3等RL算法的资源. [ 导读 ]在DeepMing任职的Nando de Freita ...
- DeepMind Nando(原牛津大学教授)强化学习最新进展,含图文、公式和代码,附102页PPT下载...
点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送 转自:专知 [导读]在DeepMing任职的Nando de Freitas(原牛津大学 ...
- 大数据入门级学习路线
一.学习技能 1.1 必备技能(10项) 01. Java高级(虚拟机.并发) 02. Linux操作 03. Hadoop V2.0 (分布式存储系统HDFS[redundant reliable ...
- InnoDB MySQL 全文索引 学习笔记
最近在学习MySQL全文索引的知识,基本搞清了功能以及使用方式,整理了相关资料分享出来一起学习进步哈 目录 1. 倒排索引 2. InnoDB全文检索 3. MySQL全文检索 3.1 Natural ...
- 深度学习数学基础(一)~卷积
前言 我在学习机器学习和图像处理的过程中经常会遇到卷积这个概念,但我每次遇到这个概念都有点不甚了解.于是我在学习了几个博客之后把我理解的做了一个总结,其不足之处敬请指正. 一.卷积的起源 文献来源:- ...
最新文章
- centos 调整home分区xfs_centos 7.4 磁盘空间不足,扩容根分区 --lvm模式
- 交叉熵损失函数公式_交叉熵损失函数对其参数求导
- C# DirectX 开发2 - 定义一个矩阵和赋值
- app 崩溃测试 (转:CSDN 我去热饭)
- 自动化测试===adb 解锁手机的思路
- android触摸消息的派发过程
- SNF软件开发机器人-子系统-导出-导入功能-多人合作时这个功能经常用到
- 解决springBoot 的templates中html引入css文件失败
- Java私有方法运用场景_java6-3 封装和private关键字
- java 消费者 生产者 队列_用Java写一个生产者-消费者队列
- 金古桥机器人_泽塔奥特曼上演“吃瘪预定”,金古桥强势回顾,阿尔法被骑着打脸...
- requests的response.text 与 response.content
- php 类 private,有关php类的private属性继承问题详解
- php 去掉后导字符,PHP去除字符串最后一个字符的三种方法实例
- 电脑经常死机是什么原因
- 分治法:快排划分法(单向扫描法)
- 亚马逊AWS营收1700亿,阿里云213亿,差距巨大能追赶吗?...
- Steam游戏上架五:U3D连接Steamworks SDK制作成就系统
- 计算机网络(自我学习)
- spring cloud 总结(摘抄版)