2014-04-18 37 views
1

我需要從屏幕鍵盤上獲取一些信息,例如Android中的壓力,KeyDown和KeyUp,但不知道該怎麼做。如何從屏幕(虛擬)鍵盤獲得壓力? (Android)

Android的官方網站說:

注意:當處理與該KeyEvent類和 相關的API鍵盤事件,你應該預料到這樣的鍵盤事件從硬件鍵盤僅 來。您絕對不應該依靠軟鍵輸入法(屏幕鍵盤)上的任何按鍵接收鍵盤 事件。

我也試過以下方法沒有成功。它實際上與後退按鈕等硬件鍵一起使用。

myEditText.setOnKeyListener(new View.OnKeyListener() { 
     @Override 
     public boolean onKey(View view, int i, KeyEvent keyEvent) { 
      return false; 
     } 
    }); 

我想找到擴展屏幕鍵盤的方法,但仍然沒有成功! 有沒有人試過這樣做?我會提前感謝您的幫助。

UPDATE: 嘗試多種解決方案後,我想出了用自己的鍵盤,通過krossovochkin建議,最終的同一個解決方案。看起來,如果想要將Android鍵盤修改爲新鍵盤,解決方案並不算太壞。這樣,它出現在「設置 - >輸入法」中,以便用戶可以切換到新的鍵盤,這是很好的,因爲它可以從所有其他應用程序訪問。由於目前尚不清楚是否有可能從標準虛擬鍵盤中獲得壓力,因此我認爲這個問題可以保持開放。

+0

所以你的問題是 – csmckelvey

+0

爲了找到壓力,答案已經在這裏共享 http://stackoverflow.com/questions/9312518/android-find-pressure-on-screen/9312570#9312570 –

+0

@Takendarkk是的,但主要是爲了這個目的,它是捕獲它的關鍵事件。如果您知道這樣做的示例代碼,請告訴我。謝謝。 –

回答

1

你可以嘗試從MotionEvent 鏈接調用getPressure()方法: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(); 
    } 
}); 

UPDATE: 你可以從它創建自己的鍵盤和getPressure。 也許用戶不會喜歡使用您的鍵盤而不是他的默認鍵盤。 但我認爲這是適合您情況的最佳解決方案。

更多信息有關:
KeyboardView:http://developer.android.com/reference/android/inputmethodservice/KeyboardView.html
創建自己的鍵盤的例子:「_Has有人曾經試圖擴大軟鍵盤的Android _」 https://github.com/rciovati/Android-KeyboardView-Example

+0

謝謝。沒錯,但我的問題是,你將如何從虛擬鍵盤中獲得壓力。 –