Androidで、onTouchEventでダブルクリックを実装し、ダブルクリックイベントとして判定する方法
2022-02-17 09:14:31
<スパン AndroidでOnTouchListenerを使ってダブルタップイベントをキャッチする方法 Androidでダブルクリックイベントをキャッチする方法
ダブルクリックをonTouchEventで実装し、ダブルクリックイベントかどうかを判定する方法
private final int DOUBLE_TAP_TIMEOUT = 200;
private MotionEvent mCurrentDownEvent;
private MotionEvent mPreviousUpEvent;
OnTouchListener mTouchListener = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (mPreviousUpEvent ! = null
&& mCurrentDownEvent ! = null
&& isConsideredDoubleTap(mCurrentDownEvent,
mPreviousUpEvent, event)) {
Log.e(TAG, "Double click=============");
}
mCurrentDownEvent = MotionEvent.obtain(event);
} else if (event.getAction() == MotionEvent.ACTION_UP) {
mPreviousUpEvent = MotionEvent.object(event);
}
return true;
}
};
private boolean isConsideredDoubleTap(MotionEvent firstDown,
MotionEvent firstUp, MotionEvent secondDown) {
if (secondDown.getEventTime() - firstUp.getEventTime() > DOUBLE_TAP_TIMEOUT) {
return false;
}
int deltaX = (int) firstUp.getX() - (int) secondDown.getX();
int deltaY = (int) firstUp.getY() - (int) secondDown.getY();
return deltaX * deltaX + deltaY * deltaY < 10000;
}
そして、ビューからタッチリスナーを設定します。
view.setOnTouchListener(mTouchListener);
関連
-
armeabi-v7a armeabi arm64-v8a パラメータの意味説明
-
android E/RecyclerView﹕ アダプタが接続されていないため、レイアウトをスキップする。
-
最新のandroidプロジェクトディレクトリにあるarmeabi-v7aとarmeabiの具体的な意味とその違いを教えてください。
-
エラーが発生しました。ArrayAdapter は、リソース ID が TextView である必要があります。
-
IllegalStateException。ArrayAdapter は、リソース ID が TextView である必要があります。
-
Android TextViewにandroid:ellipsize=endのバグがある。
-
アプリの実行エラー。ターゲットデバイスが見つからない問題
-
新しいAndroidプロジェクトの作成時に、AndroidManifest.xmlファイルが見つからないというプロンプトが表示されます。
-
StrictMode$AndroidBlockGuardPolicy.onNetwork は android.os の下でエラーになります。
-
adb connection appears device not found 問題が解決された
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
adb シェルがデバイスのオフラインを求めるプロンプトを表示する
-
Android端末にADBが接続できない!を解決。理由: デバイスが認証されていない!
-
android studioが "The activity must be exported or contain an intent-filter" と表示され実行される。
-
view.getRootView()の本当の意味とテストについて
-
Android ProgressBarのスタイルカラーを変更する
-
Android Get set image.setImageResource(R.drawable.xxx) リソース
-
Android--shape--描画のコーナー、グラデーション、パディング、サイズ、ソリッド、ストロークのプロパティを指定する。
-
超シンプルなアンドロイドのタイムディレイ機能
-
Android Studio http://schemas.android.com/apk/res/android 「URIが登録されていません」の解決方法について
-
Android TextViewは、テキスト内容が表示省略記号を超えているかどうかを判断する