如何从屏幕(虚拟)键盘获得压力? (机器人)

时间:2014-04-18 06:48:48

标签: android onkeyup on-screen-keyboard pressure

我需要从屏幕键盘上获取一些信息,例如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键盘修改为新键盘,似乎解决方案并不算太糟糕。这样,它出现在"设置 - >输入法"这样用户就可以切换到新的键盘,这很好,因为它可以从所有其他应用程序访问。由于尚不清楚是否有可能从标准虚拟键盘获得压力,因此我认为这个问题可以保持开放。

1 个答案:

答案 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