2017-08-09 17 views
0

モバイルアプリは、タッチスクリーン搭載のAndroid搭載端末に最適です。私はタッチスクリーンを持たないがDPadキーを持つ新しいデバイスをサポートする必要があります。私はDPadの方向キーをキャプチャし、画面上にカーソルの矢印をエミュレートできると思っています。非タッチスクリーンのAndroid搭載端末でタッチスクリーンをエミュレートする

API呼び出しで簡単にオンにできるAndroidのコア機能は、コアAndroidに組み込まれていますか?カーソルの位置を取得/設定する方法はありますか?また、ユーザーがDPadキーのEnterを押すと、プログラムでタッチスクリーンイベントをエミュレートできますか?よろしく。

答えて

0

APIコールで簡単にオンにすることができるコアのAndroid機能がAndroid Androidに組み込まれていますか?

ユーザーがマウスを使用している場合のみ、その場合はAPI呼び出しが必要ありません。

カーソルの位置を取得/設定する方法はありますか?

また、ユーザーを押すが、DPADキーで入力したときに、私は、プログラムタッチスクリーンイベントをエミュレートすることができますか?

番号いいえ。あなたのアプリは、onKeyDown()のような方法ですべてのキープレスを見つけます。 KEYCODE_DPAD_CENTERを取得した場合は、必要な処理をすべて実行します。 onTouchEvent()メソッドにルーティングするだけで、タッチスクリーンイベントをエミュレートする必要はありません。

+0

ありがとうございました。カスタムボタンとリストビューを使用しています。特定のレイアウトごとにdpadキーを処理し、フォーカスのあるコントロールの表示/非表示を管理することは、コードのメンテナンスの頭痛にすぎません。私は単にタッチスクリーンの振る舞いをエミュレートすることができたら、レイアウトごとにカスタムコードを書く必要はありません。 – Peter

+0

@Peter:「タッチスクリーンの振る舞いを単純にエミュレートできれば、レイアウトごとにカスタムコードを書く必要はありません」、または既存のスタイリングで探しているルックアンドフィールを実現する方法を見つけるAndroidのウィジェットは 'Button'と' ListView'が両方ともキーでナビゲート可能です( 'RecyclerView'はこれではまったく「アウトオブボックス」ではありませんが、扱いやすいです)。 – CommonsWare

0

まず、「アプリよりアクセスしやすく」をお読みください。(例えばD-パッドコントロールなど) https://developer.android.com/guide/topics/ui/accessibility/apps.html

キーイベントをキーイベント

onKeyDown(int keyCode, KeyEvent event) 

タッチイベントの形でアプリに来ます

onTouchEvent(MotionEvent event) 

Androidは確かにカーソル(マウス)をサポートしています。また、画面上のウィジェットの周りに表示されるハイライトである、フォーカスを管理するためのフレームワークも備えています。

DパッドのEnterキーを押すことは、画面に触れることと同義ではなく、異なるイベントであり、それに応じて処理する必要があります。上記の参照文書は正しい方向にあなたを指します。

関連する問題