Как получить фактическую позицию события движения для кнопки наложения системы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
Ответить

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

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

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

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

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