บทนำ
ตัวอย่างนี้สาธิตการตรวจจับท่าทาง Fling (การสวายปัดเร็ว) บนหน้าจอ Android โดยใช้ GestureDetector ใน Kotlin
ขั้นตอนที่ 1: สร้างโปรเจกต์ใหม่
สร้างโปรเจกต์ใหม่ใน Android Studio
ขั้นตอนที่ 2: Layout (activity_main.xml)
เพิ่มโค้ดใน res/layout/activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="4dp"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="70dp"
android:background="#008080"
android:padding="5dp"
android:text="TutorialsPoint"
android:textColor="#fff"
android:textSize="24sp"
android:textStyle="bold" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Fling Gesture"
android:textColor="@color/colorAccent"
android:textSize="24sp"
android:textStyle="bold" />
</RelativeLayout>
ขั้นตอนที่ 3: MainActivity.kt
เพิ่มโค้ดใน src/MainActivity.kt:
import android.os.Bundle
import android.view.GestureDetector
import android.view.MotionEvent
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity(), GestureDetector.OnGestureListener {
lateinit var gestureDetector: GestureDetector
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
title = "KotlinApp"
gestureDetector = GestureDetector(this)
}
override fun onTouchEvent(event: MotionEvent): Boolean {
return if (gestureDetector.onTouchEvent(event)) {
true
} else {
super.onTouchEvent(event)
}
}
override fun onDown(p0: MotionEvent?): Boolean = false
override fun onShowPress(p0: MotionEvent?) {}
override fun onSingleTapUp(p0: MotionEvent?): Boolean = false
override fun onScroll(p0: MotionEvent?, p1: MotionEvent?, p2: Float, p3: Float): Boolean = false
override fun onLongPress(p0: MotionEvent?) {}
override fun onFling(p0: MotionEvent?, p1: MotionEvent?, p2: Float, p3: Float): Boolean {
Toast.makeText(applicationContext, "Fling Gesture", Toast.LENGTH_SHORT).show()
return true
}
}
ขั้นตอนที่ 4: AndroidManifest.xml
ตรวจสอบการประกาศ Activity หลัก
การทดสอบ
รันแอปบนอุปกรณ์จริง ทำท่าสวายปัด (fling) บนหน้าจอ จะแสดง Toast "Fling Gesture"
