我需要从屏幕键盘上获取一些信息,例如Android中的压力,KeyDown和KeyUp,但不知道该怎么做。
Android官方网站说:
注意:使用KeyEvent类处理键盘事件时 相关的API,你应该期望只有这样的键盘事件 从硬件键盘。你永远不应该依赖接收钥匙 软输入法(屏幕键盘)上任意键的事件。
我也尝试了以下方法但没有成功。它实际上适用于后退按钮等硬件键。
myEditText.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View view, int i, KeyEvent keyEvent) {
return false;
}
});
我在想找到一种扩展屏幕键盘的方法,但仍然没有成功! 有没有人试过这样做?我提前感谢您的帮助。
更新 在尝试了很多解决方案之后,我想出了使用我自己的键盘的相同解决方案,最终由krossovochkin建议。如果想要将Android键盘修改为新键盘,似乎解决方案并不算太糟糕。这样,它出现在"设置 - >输入法"这样用户就可以切换到新的键盘,这很好,因为它可以从所有其他应用程序访问。由于尚不清楚是否有可能从标准虚拟键盘获得压力,因此我认为这个问题可以保持开放。
答案 0 :(得分:1)
您可以尝试从getPressure()
调用MotionEvent
方法
链接:http://developer.android.com/reference/android/view/MotionEvent.html#getPressure%28int%29
代码段:
view.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
float pressure = event.getPressure();
}
});
<强>更新强> 您可以从中创建自己的键盘和getPressure。 也许用户不喜欢使用键盘而不是默认键盘。 但我认为这是适合您情况的最佳解决方案。
有关以下内容的更多信息:
KeyboardView:http://developer.android.com/reference/android/inputmethodservice/KeyboardView.html
创建自己的键盘的示例:
https://github.com/rciovati/Android-KeyboardView-Example