2017-08-09 162 views
0

我們的移動應用程序可與觸摸屏Android設備配合使用。我需要支持沒有觸摸屏但具有DPad鍵的新設備。我想我可以捕捉DPad方向鍵並在屏幕上模擬光標箭頭。在非觸摸屏安卓設備上模擬觸摸屏

內置於核心Android中的鼠標光標功能可以簡單地通過API調用打開嗎?有沒有方法在屏幕上獲取/設置光標位置?此外,當用戶按下DPad鍵上的Enter時,是否可以通過編程模擬觸摸屏事件?問候。

回答

0

內置於核心Android中的鼠標光標功能可以簡單地通過API調用打開嗎?

只有當用戶使用鼠標時,在這種情況下不需要API調用。

有沒有方法在屏幕上獲取/設置光標位置?

此外,當用戶按下DPAD鍵進入,可我模擬觸摸屏事件編程?

不需要。您的應用程序將通過onKeyDown()等方法瞭解所有按鍵。當你得到KEYCODE_DPAD_CENTER時,你只需要做任何需要的事情;不需要模擬觸摸屏事件,只需要路由到一些onTouchEvent()方法。

+0

謝謝你的幫助。我們正在使用自定義按鈕和列表視圖。試圖處理每個特定佈局的dpad鍵,並管理顯示/隱藏焦點下的控制,只是一個代碼維護頭痛。我希望能夠簡單地模擬觸摸屏行爲,我不必爲每個佈局編寫自定義代碼。 – Peter

+0

@Peter:「我希望能夠簡單地模擬觸摸屏行爲,我不必爲每個佈局編寫自定義代碼」 - 或者,找到一種方法,通過現有樣式實現您尋找的任何外觀和感覺Android widget,作爲'Button'和'ListView'都可以通過鍵進行導航('RecyclerView'並不完全像「開箱即用」一樣,但是可以管理)。 – CommonsWare

0

首先,請閱讀「製作應用的Accessible」: https://developer.android.com/guide/topics/ui/accessibility/apps.html

關鍵事件(如d-墊控制)進入應用程序中的關鍵事件

onKeyDown(int keyCode, KeyEvent event) 

觸摸事件的形式通過

onTouchEvent(MotionEvent event) 

進入應用程序Android確實支持遊標(鼠標)。它還具有管理焦點的框架,這是圍繞屏幕小部件出現的亮點。

按下D-pad上的輸入不是觸摸屏幕的同義詞 - 它們是不同的事件,需要相應處理。上述參考文檔將指向您正確的方向。