تشخیص Double Tap در برنامه نویسی اندروید

سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش تشخیص Double Tap در برنامه نویسی اندروید می پردازیم منظور از Double Tap یعنی تشخیص دهیم که کاربر دوبار بروی صفحه کلیک کرده باشید اگر لایک Instagram را به خاطر بیاورید درصورتی که بخواهید یک عکس / ویدیو را لایک کنید باید دوبار بروی آن کلیک در ادامه با ما همراه باشید.
ابتدا وارد layout خود شده کد زیر را در آن قرار دهید (نیازی به قرار دادن چیزی نیست ولی کد را قرار دادیم تا بهتر متوجه شوید) نام Layout ما برابر با

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/RelativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:background="#FFF3E0"
    >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Programchi.ir"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"
        android:gravity="center"
        android:textSize="25dp"
        android:textColor="#000000"/>
</RelativeLayout>

سپس کد مربوط به MainActivity.java هم همانند زیر می شود.

package ir.programchi;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements GestureDetector.OnGestureListener,
        GestureDetector.OnDoubleTapListener {
    GestureDetector gestureDetector;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        gestureDetector = new GestureDetector(MainActivity.this, MainActivity.this);
    }
    @Override
    public boolean onTouchEvent(MotionEvent event){
        this.gestureDetector.onTouchEvent(event);
        return super.onTouchEvent(event);
    }
    @Override
    public boolean onDown(MotionEvent event) {
        return true;
    }
    @Override
    public boolean onFling(MotionEvent event1, MotionEvent event2,
                           float velocityX, float velocityY) {
        return false;
    }
    @Override
    public void onLongPress(MotionEvent event) {
    }
    @Override
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
                            float distanceY) {
        return false;
    }
    @Override
    public void onShowPress(MotionEvent event) {
    }
    @Override
    public boolean onSingleTapUp(MotionEvent event) {
        return false;
    }
    @Override
    public boolean onDoubleTap(MotionEvent event) {
        Toast.makeText(MainActivity.this, "Double Tap on Screen is Working.", Toast.LENGTH_LONG).show();
        return true;
    }
    @Override
    public boolean onDoubleTapEvent(MotionEvent event) {
        return true;
    }
    @Override
    public boolean onSingleTapConfirmed(MotionEvent event) {
        return false;
    }
}

 
برای اینکه بررسی کنیم کاربر بروی صفحه دوبار کلیک کرده است از GestureDetector استفاده کردیم در بالا شما void های مختلفی را  می بینید برای اینکه Double Tap را بررسی کنیم در void مربوطه آن یک Toast قرار داده ایم همانطور که مشاهده می کنید مقدار های مختلفی که به آنها Event گفته می شود در کد بالا قرار داده شده است هر کدام برای انجام کاری خاصی استفاده می شوند.
 
این آموزش هم به پایان رسید.
 
موفق و موید باشید.

مطالعه بیشتر