1

我需要从屏幕键盘上获取一些信息,例如 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的键盘修改为新键盘,该解决方案似乎还不错。这样,它就会出现在“设置 --> 输入法”中,以便用户可以切换到新键盘,这很好,因为它可以从所有其他应用程序访问。由于目前尚不清楚是否可以从标准虚拟键盘获得压力,因此我认为这个问题可以留待解决。

4

1 回答 1

1

您可以尝试从 链接调用getPressure()方法:http: //developer.android.com/reference/android/view/MotionEvent.html#getPressure%28int%29MotionEvent

代码片段:

view.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        float pressure = event.getPressure();
    }
});

更新: 您可以创建自己的键盘并从中获取压力。也许用户不喜欢使用您的键盘而不是他的默认键盘。但我认为这是适合您情况的最佳解决方案。

更多信息:
KeyboardView: http: //developer.android.com/reference/android/inputmethodservice/KeyboardView.html
创建自己的键盘示例: https ://github.com/rciovati/Android-KeyboardView-Example

于 2014-04-18T06:53:06.650 回答