私はタブレット用のAndroid 5.1アプリケーションを作成していますが、MotionEvent
オブジェクトの助けを借りてタッチとスタイラスの入力を区別できます。Androidでタッチを無効にする(スタイラスのみ許可)
タッチ入力のみ許可することができます(つまり、タッチしても効果はありません)。
私はタブレット用のAndroid 5.1アプリケーションを作成していますが、MotionEvent
オブジェクトの助けを借りてタッチとスタイラスの入力を区別できます。Androidでタッチを無効にする(スタイラスのみ許可)
タッチ入力のみ許可することができます(つまり、タッチしても効果はありません)。
良い方法はありませんが、カスタムビューを作成してレイアウトの最上部に配置することができます(全幅と高さで全体のアールをカバーするようにします)。ビューのみの仕事は、フィルタリングしたいすべてのモーションイベント(スタイラスからのものではない)を処理済みとしてマークして入力を処理し「消費」し、他のすべてのイベントを無視することで、フレームワークをビュー階層他のビューによる定期的な処理。
EDIT
最も単純な実装では、あなたのビューは次のように、シンプルな既存のものを、拡張させることであろう。 FrameLayout
またはSpace
(すべての測定項目を煩わせる必要はありません)、すべての入力をフィルタリングするにはonTouchEvent()
を上書きします。あなたが渡したくないものがある場合は、true
を返してここで「消費」してください。それ以外の場合はfalse
を返して伝播します。 そして重要なのは、あなたのビューが最上位には他のすべてをオーバーレイするために作るために、すなわち
FrameLayout
YourCustomView
PreviousLayout
ありがとうございました。あなたのアプローチを明確にするための例を挙げることができますか? – machinery
これはかなり簡単ですが、編集された回答を参照してください –
この[リンク](http://lapasa.net/knowledge/?p=490)あなたを助けるかもしれません。 – huk
@huk私はタッチとスタイラスを区別することができます。私がしたいのは、スタイラスだけを許可することです。 – machinery