安卓多点触屏如何上报触控事件

在开发触摸屏驱动时,遇到点击安卓桌面按钮无响应的问题。代码中遍历了最大支持的触控点,报告了按下和释放状态的触控事件,但按钮仍无反应。如何正确上报触控事件以及如何调试此类问题成为当前的挑战。
摘要由CSDN通过智能技术生成
我现在在做触摸屏驱动,点击安卓桌面上的按钮时,在驱动中能获得触摸屏上的坐标, 但按钮没有反应。
刚接触安卓,请问下面代码有没有问题?还有如何调试这种问题?
谢谢!
#define MAX_SUPPORT_POINTS 5

for (i = 0; i < MAX_SUPPORT_POINTS; i++) {
        input_mt_slot(data->input_dev, i);
        if (data->fingers[i].status) { //按下
            input_mt_report_slot_state(data->input_dev, MT_TOOL_FINGER, true);
            input_report_abs(data->input_dev, ABS_MT_POSITION_X, data->fingers[i].x);
            input_report_abs(data->input_dev, ABS_MT_POSITION_Y, data->fingers[i].y);
            input_report_abs(data->input_dev, ABS_MT_PRESSURE, data->fingers[i].pressure);
            input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, 1);
            //input_report_abs(data->input_dev, ABS_MT_TRACKING_ID, i);
        }
        else
        {
            uppo
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Android中,通过多点触控的方式控制移动非常常见和简便。首先,Android设备的屏幕可以同时检测和处理多个触摸点的输入。这意味着用户可以使用不止一个手指在屏幕上进行操作。 在实现通过多点触控控制移动的过程中,最重要的是监听页面上的触摸事件。可以通过在活动或视图的代码中重写相应的触摸事件方法来实现。常见的触摸事件方法包括onTouchEvent()和onInterceptTouchEvent()等。 一种常见的方式是通过记录用户第一次触摸屏幕时的触摸点坐标,并随后不断更新它们,来计算用户的手指移动距离和方向。通过计算前后两次触摸点坐标的差异,可以确定用户的手指在屏幕上移动的方向和距离。 一种简单的实现方式是使用View类的scrollBy()方法,通过调用该方法来移动视图的内容。通过将计算得到的移动距离传递给scrollBy()方法,可以使视图在用户的触摸下相应地移动。 另一种常见的实现方式是使用SurfaceView来绘制游戏或图形应用程序。通过在SurfaceView的回调方法中检测触摸事件,并在每一帧更新屏幕上的图形内容,可以实现更为复杂的移动控制。 通过结合使用触摸事件的各种方法和移动控制的技巧,开发者可以根据项目需求来实现多种不同的移动效果,满足用户对于交互性和用户体验的要求。因此,Android中通过多点触控的方式控制移动变得灵活、方便和可定制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值