GESTURE DETECTOR ON VIEWS | IMAGEVIEW | TEXTVIEW | BUTTON | RELATIVELAYOUT
Gesture Detector
Gesture detector is used to find detect gestures like single tap,double
tap, single tap confirmed, onfling , scrolling etc,.
activity_layout.xml
<Button
android:textColor="@android:color/white"
android:backgroundTint="@android:color/holo_blue_dark"
android:text="touch me "
android:layout_centerInParent="true"
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="110dp" />
Declare gesture detector object
lateinit var mygestureDetector: GestureDetector
Define gesture detector object in oncreate
mygestureDetector = GestureDetector(this@MainActivity, MyGestureDetector())
Define touch listener object
var touchListener = View.OnTouchListener{
v,event->
mygestureDetector.onTouchEvent(event)
}
Set touch listener on View
button.setOnTouchListener(touchListener)
Gesture Detector class
class MyGestureDetector : GestureDetector.SimpleOnGestureListener() {
var GESTURETAGBUTTON = "MAINACTIVITYTOUCHMEBUTTON"
override fun onSingleTapUp(e: MotionEvent?): Boolean {
Log.d(GESTURETAGBUTTON,"single tap up")
return super.onSingleTapUp(e)
}
override fun onDown(e: MotionEvent?): Boolean {
Log.d(GESTURETAGBUTTON,"on down")
return super.onDown(e)
}
override fun onFling(e1: MotionEvent?, e2: MotionEvent?, velocityX: Float, velocityY: Float): Boolean {
Log.d(GESTURETAGBUTTON,"on fling\t Veloxity x \t\t"+velocityX+"\t\tveloxity y\t\t"+velocityY)
//handle the values here return super.onFling(e1, e2, velocityX, velocityY)
}
override fun onDoubleTap(e: MotionEvent?): Boolean {
Log.d(GESTURETAGBUTTON,"double tap ")
return super.onDoubleTap(e)
}
override fun onScroll(e1: MotionEvent?, e2: MotionEvent?, distanceX: Float, distanceY: Float): Boolean {
Log.d(GESTURETAGBUTTON,"on scroll\t \t\t"+distanceX+"\t\tveloxity y\t\t"+distanceY)
//handle the values here return super.onScroll(e1, e2, distanceX, distanceY)
}
override fun onContextClick(e: MotionEvent?): Boolean {
return super.onContextClick(e)
}
override fun onSingleTapConfirmed(e: MotionEvent?): Boolean {
Log.d(GESTURETAGBUTTON,"single confirmed")
return super.onSingleTapConfirmed(e)
}
override fun onShowPress(e: MotionEvent?) {
super.onShowPress(e)
Log.d(GESTURETAGBUTTON,"on show press")
}
override fun onDoubleTapEvent(e: MotionEvent?): Boolean {
Log.d(GESTURETAGBUTTON,"on double tap")
return super.onDoubleTapEvent(e)
}
override fun onLongPress(e: MotionEvent?) {
super.onLongPress(e)
Log.d(GESTURETAGBUTTON,"on long press")
}
}
Comments
Post a Comment