Android 代码实现模拟点击

废话不多说,直接上代码,自己修改点击范围

private fun preFromClick() {
        mBinding.root.postDelayed({
            val sw: Int = this.requireActivity().resources.displayMetrics.widthPixels
            val sh: Int = this.requireActivity().resources.displayMetrics.heightPixels
            val x = (sw.toDouble() - sw.toDouble() * 0.5).toInt()
            val y = (sh.toDouble() - sh.toDouble() * 0.5).toInt()
            preFromClick(this.requireActivity(), x, y)
        },150)
    }

    private fun preFromClick(activity: Activity?, x: Int, y: Int) {
        if (activity != null) {
            val evenDown = MotionEvent.obtain(
                System.currentTimeMillis(),
                System.currentTimeMillis() + 100L,
                0,
                x.toFloat(),
                y.toFloat(),
                0
            )
            val eventUp = MotionEvent.obtain(
                System.currentTimeMillis(),
                System.currentTimeMillis() + 100L,
                1,
                x.toFloat(),
                y.toFloat(),
                0
            )
            evenDown.recycle()
            eventUp.recycle()
            activity.dispatchTouchEvent(evenDown)
            activity.dispatchTouchEvent(eventUp)
        }
    }

puivate fun dp2px(Context context, int dp) : Int {
        val metrics = requireActivity().resources.displayMetrics
        return (int)((float)dp * ((float)metrics.densityDpi / 160.0F));
    }

  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值