在Android中创建自定义键盘
我想写一个自定义键盘,它应该可以在所有运行安卓4.0及更高版本的设备上使用。所以首先我搜索了一下网络,但是没有找到任何关于这个的信息。那么,我如何才能创建一个应用程序来取代Android的普通键盘呢 我想知道的是:在Android中创建自定义键盘,android,keyboard,android-softkeyboard,Android,Keyboard,Android Softkeyboard,我想写一个自定义键盘,它应该可以在所有运行安卓4.0及更高版本的设备上使用。所以首先我搜索了一下网络,但是没有找到任何关于这个的信息。那么,我如何才能创建一个应用程序来取代Android的普通键盘呢 我想知道的是: 有好的教程吗?你们有样本代码吗 我需要根来做这个吗 它背后的结构是什么?(这只是一项有服务的常规活动吗??) 可以读出键盘内的输入框吗 所以首先我搜索了一下网络,但没有找到任何关于这个的信息 在Internet上的中介绍了如何创建输入法 你们有样本代码吗 如果您从SDK管理器下载了示
samples/
目录中有一个示例。查找软键盘
我需要根来做这个吗
没有
它背后的结构是什么?(这只是一项有服务的常规活动吗??)
是的。所以,我在Swype上工作了大约两年。您不需要root,只需要实现InputMethodService。您可以从大多数文本框中获取文本,但不是所有文本框(并非所有编辑字段都能正确实现其一半的API。尤其是任何输入类型为input_type_NULL的文本都无法正常工作)。要获取文本,请调用inputConnection.getExtractedText 请注意——API不好,应用程序在使用它时经常出错。一个基本的键盘很简单,但是尝试做任何复杂的事情,你会花很多时间。大量的工时都花在了大键盘上
inputMethodService
,请参阅
InputConnection ic = getCurrentInputConnection();
String currentText = ic.getExtractedText(new ExtractedTextRequest(), 0).text;
嗯,在开发人员文档中没有找到它,顺便问一下@commonware这个主题在你的一本书中涉及吗?@safari:没有,对不起。它在列表中,但优先级不高,因为它是一个相当专业的主题。好吧=),最后一个问题,我是否可以读出我在inputbox中写的内容(edittext,无论什么),然后替换它?@safari:我不熟悉
InputMethodService
如何编辑现有文本,对不起。@commonware:谢谢你的回答。我使用过软键盘(在android sdk示例中给出)。但是自动建议栏没有显示在键盘上。我怎样才能在软键盘上显示自动提示词呢?好吧,所以当我想在键盘上放一些喷丝板之类的东西,让用户更改文本时,这就变得非常困难了?我说的对吗?或者我可以在那里叠加一个新的布局吗?所以框架的这一部分背后的想法是,你将实现整个键盘敲击、预测等等。这包括绘图。因此,添加微调器不应该是一个问题,尽管您是一个服务,但IME可以设置UI(唯一这样的服务)。所以只需在布局中放置微调器。如果你只是想要一个没有预测的标准键盘,Android有很多帮助,但我不确定有多少-我们做了所有定制,我们的布局只是一个定制视图,我们自己绘制。好吧,我来试一试,顺便说一句,除了来自谷歌的软键,你还知道其他的示例代码吗?可能有一两个小教程,但不多。如果你进入AOSP代码,你可能会发现android的键盘。它过去被称为“拉丁语”。这是你最好的例子,你可以根据自己的喜好修改。谢谢。什么是根目录:否
?请编辑你的帖子。@CoolMind他的问题是我是否需要根设备来实现这样的事情,答案是否定的,里面没有可以编辑的内容。如果你再次看到你的答案,你会注意到,答案是2。你在第四题中又重复了一遍。相关: