Код: Выделить всё
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
Мобильная версия