private lateinit var lastEvent: MotionEvent
override fun onDraw(canvas: Canvas?) {
...
Log.d("demo","ondraw lastEvent.x="+lastEvent.x+" lastEvent.y="+lastEvent.y)
Log.d("demo","ondraw lastEvent.rawX="+lastEvent.rawX+" lastEvent.rawY="+lastEvent.rawY)
...
}
override fun onTouchEvent(event: MotionEvent?): Boolean {
...
when (event.action) {
MotionEvent.ACTION_DOWN -> {
return true
}
MotionEvent.ACTION_MOVE -> {
lastEvent = event
Log.d("demo","onTouchEvent lastEvent.x="+lastEvent.x+" lastEvent.y="+lastEvent.y)
}
else -> {
}
}
...
}
为什么lastEvent.x得到不同的结果。这个问题困扰着我。
请帮帮我,谢谢。
答案 0 :(得分:0)
很可能在您触摸视图后就不会立即调用方法onDraw()
。
在方法invalidate()
的末尾添加对onTouchEvent()
的调用,这样它将在内部调用方法onDraw()
并在同一位置绘制。