如何从LatinIME重新实现dpad事件处理

时间:2013-01-19 02:41:15

标签: android android-input-method d-pad

ics中的默认键盘(使用4.0.4测试)可让您使用移动键(使用dpad或键盘箭头)在屏幕键盘上“选择”键。通过单击选中的键输入。

我正在编写一个需要此功能的新输入法。 我已经尝试了一些示例键盘,例如sdk中包含的Softkeyboard示例。但那些表现不同。按下移动键不允许选择键盘上的键。而是将光标移动到输入区域。

我还检查了LatinIME包但未能找到负责所需行为的代码部分。任何见解都会有所帮助!

到目前为止,我的假设是选择的直观表示以某种方式使用state_active完成。在查看样式定义之后,至少这是我的结论。 似乎负责的方法将是InputMethodService中的onKeyUp / onKeyDown。 LatinIME剂量不会覆盖这些方法。

编辑:在这一点上,我确信这不是AOSP LatinIME,即使它显示为“Android键盘(AOSP)”。我用android mini PC(MK808和UG802)进行了测试。似乎他们对IME有一个补充。按下显示的InputView的DPAD键可得到以下输出:

D/LatinKeyboardView(  487): ##----- keycout = 39 ------@@@ 
I/LatinKeyboardView(  487): ######## index=37, y= 271 x =1107
I/LatinKeyboardView(  487): ######## index=37---action =0---code =45
D/PointerTracker(  487): -------- release old key ---------------
I/LatinKeyboardView(  487): SendKeyEvent2Touch  m_iIndexCurKey=37 m_iKeyCount =39 keyCode =21

我在谷歌上找不到任何关于此的内容。我想听听有关如何实现这一点的建议。

0 个答案:

没有答案