Цвет того места, где пользователь касается экрана — Котлин для AndroidJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Цвет того места, где пользователь касается экрана — Котлин для Android

Сообщение Anonymous »

У меня есть функция, которая позволяет пользователю рисовать на экране. В эмуляторе работает корректно; куда я прикасаюсь, экран красится. Однако, когда я тестировал его на своем планшете, он сильно затмевался. Если я нажму на середину экрана, он закрасится в правом нижнем углу. Кто-нибудь знает, как исправить это смещение?
private fun handleTouch(event: MotionEvent): Boolean {
val drawable = drawable ?: return false

val imageWidth = drawable.intrinsicWidth
val imageHeight = drawable.intrinsicHeight
val viewWidth = width
val viewHeight = height

val scaleX = viewWidth.toFloat() / imageWidth
val scaleY = viewHeight.toFloat() / imageHeight
val scale = Math.min(scaleX, scaleY)

val correctedX = ((event.x - (viewWidth - imageWidth * scale) / 2) / scale).toInt()
val correctedY = ((event.y - (viewHeight - imageHeight * scale) / 2) / scale).toInt()

when (event.action) {
MotionEvent.ACTION_MOVE -> {
drawOnImage(correctedX, correctedY)
return true
}
MotionEvent.ACTION_DOWN -> {
performClick()
return true
}
MotionEvent.ACTION_UP -> {
drawOnImage(correctedX, correctedY)
drawingListener?.onDrawing()
return true
}
}
return false
}

fun drawOnImage(x: Int, y: Int) {
val canvas = Canvas((drawable as BitmapDrawable).bitmap)
canvas.drawCircle(x.toFloat(), y.toFloat(), paint.strokeWidth / 2, paint)
invalidate()
}

xml



Подробнее здесь: https://stackoverflow.com/questions/790 ... in-android
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»