Pro Android with Kotlin


CHAPTER 9: User Interface



Yüklə 4,6 Kb.
Pdf görüntüsü
səhifə212/231
tarix29.11.2023
ölçüsü4,6 Kb.
#138831
1   ...   208   209   210   211   212   213   214   215   ...   231
@de android telegram Pro Android with Kotlin Developing Modern Mobile



258
CHAPTER 9: User Interface
Multitouch
Multitouch events in the Android OS are surprisingly easy to handle. All you need is 
to overwrite the 
onTouchEvent()
method of a 
View
or a 
ViewGroup
element. Inside the 
onTouchEvent()
, you fetch the masked action and act upon it.
frog.setOnTouchListener { view, event ->
true
}
Note
In older versions of Android, you usually dispatch on the action as in 
event.action
. With 
multitouch gestures, it is better to act on the 
maskedAction
.
Inside the listener, you get the masked action by 
event.actionMasked
and pass it to a 
when()
{ .. }
statement.
The magic now lies in this listener being invoked for all fingers (here called 
pointers

consecutively. To find out how many fingers currently are registered, you use 
event.
pointerCount
, and if you want to know which finger the event belongs to you, use 
val index 
= event.actionIndex
. A starting point is thus as follows:
theView.setOnTouchListener { view,event ->
fun actionToString(action:Int) : String = mapOf(
MotionEvent.ACTION_DOWN to "Down",
MotionEvent.ACTION_MOVE to "Move",
MotionEvent.ACTION_POINTER_DOWN to "Pointer Down",
MotionEvent.ACTION_UP to "Up",
MotionEvent.ACTION_POINTER_UP to "Pointer Up",
MotionEvent.ACTION_OUTSIDE to "Outside",
MotionEvent.ACTION_CANCEL to "Cancel").
getOrDefault(action,"")
val action = event.actionMasked
val index = event.actionIndex
var xPos = -1
var yPos = -1
Log.d("LOG", "The action is " +
actionToString(action))
if (event.pointerCount > 1) {
Log.d("LOG", "Multitouch event")
// The coordinates of the current screen contact,
// relative to the responding View or Activity.
xPos = event.getX(index).toInt()
yPos = event.getY(index).toInt()
} else {
// Single touch event



Yüklə 4,6 Kb.

Dostları ilə paylaş:
1   ...   208   209   210   211   212   213   214   215   ...   231




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə