Как получить фактическую позицию события движения для кнопки наложения системыAndroid

Форум для тех, кто программирует под Android
Anonymous
Как получить фактическую позицию события движения для кнопки наложения системы

Сообщение Anonymous »

При отображении кнопки «Оверт приложение» в Android через Display Over Erhere Appless Lessisse я установил слушатель событий движения, чтобы позволить пользователю перетаскивать кнопку на экране, но положение, которое я получаю от Event.Rawy, на самом деле не точна и, кажется, имеет панели состояния и, возможно, навигационные стержни, которые на самом деле ниже. Хотя я рассчитывал на высоте кнопок, и ширина точна на < /p>

Код: Выделить всё

val displayMetrics = displayData.getInstance()
cursorView = Button(context)
val cursorSize = displayMetrics.screenSizeX / 10
cursorView?.setBackgroundResource(R.drawable.cursor)
cursorParams = WindowManager.LayoutParams(
cursorSize, cursorSize,
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL or
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
PixelFormat.TRANSLUCENT
)
cursorParams?.gravity = Gravity.START or Gravity.TOP

cursorParams?.x = (displayMetrics.screenSizeX - cursorSize) / 2
cursorParams?.y = (displayMetrics.screenSizeY - cursorSize) / 2

cursorView?.setOnTouchListener { _, event ->
when (event.action) {
MotionEvent.ACTION_MOVE -> {
cursorParams?.x = (event.rawX - cursorSize / 2).toInt()
cursorParams?.y = (event.rawY - cursorSize / 2).toInt()
Tools.logMessage(message ="Screen Size: ${displayMetrics.screenSizeX} x ${displayMetrics.screenSizeY}")
Tools.logMessage(message ="Calculated Cursor Position: ${cursorParams?.x}, ${cursorParams?.y}")

windowManager.updateViewLayout(cursorView, cursorParams)
true
}
else -> false
}
}

windowManager.addView(cursorView, cursorParams)
Есть ли лучший способ получить фактическое положение движения по сравнению с фактическим размером экрана, помимо расчета высоты статуса и навигационных полос?>

Подробнее здесь: https://stackoverflow.com/questions/776 ... lay-button

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