首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当尝试将触摸坐标传递到android studio中的canvas时,在触摸函数上收到错误'overrides nothing‘

当尝试将触摸坐标传递到Android Studio中的Canvas时,在触摸函数上收到错误'overrides nothing'。

这个错误通常是因为在子类中重写父类的方法时,方法的签名不匹配导致的。在Android开发中,触摸事件处理通常需要重写View或ViewGroup的onTouchEvent方法。

要解决这个问题,你需要确保重写的方法签名与父类的方法签名完全匹配。在处理触摸事件时,你可以按照以下步骤进行操作:

  1. 确保你的类继承自View或ViewGroup类。
  2. 在你的类中重写onTouchEvent方法,方法签名应该是public boolean onTouchEvent(MotionEvent event)
  3. 在方法体内部,你可以通过参数MotionEvent获取触摸事件的相关信息,如触摸坐标等。
  4. 处理完触摸事件后,根据需要返回一个布尔值,表示是否消耗了该触摸事件。

以下是一个示例代码:

代码语言:txt
复制
public class MyView extends View {
    // 构造函数

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        // 处理触摸事件
        float x = event.getX();
        float y = event.getY();
        
        // 其他处理逻辑
        
        return true; // 表示已经消耗了该触摸事件
    }
}

在这个示例中,MyView类继承自View类,并重写了onTouchEvent方法。在方法体内部,我们通过event参数获取了触摸坐标,并进行了其他处理逻辑。最后,我们返回了true,表示已经消耗了该触摸事件。

腾讯云相关产品和产品介绍链接地址:

  • 云服务器(CVM):提供可扩展的计算容量,满足不同规模业务需求。产品介绍
  • 云数据库 MySQL 版:高性能、可扩展的关系型数据库服务。产品介绍
  • 人工智能平台(AI Lab):提供丰富的人工智能算法和模型,帮助开发者快速构建人工智能应用。产品介绍
  • 云存储(COS):安全可靠的对象存储服务,适用于存储和处理各种类型的文件和数据。产品介绍
  • 区块链服务(Tencent Blockchain):提供全面的区块链解决方案,帮助企业构建可信赖的区块链应用。产品介绍
  • 腾讯会议:高清流畅的远程会议和协作工具,支持多人视频通话和屏幕共享。产品介绍
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【STM32F429】第8章 ThreadX GUIX移植STM32F429(MDK AC6)

触摸移植 电容触摸移植比较容易,因为电容触摸芯片可以自动触摸校准,所以仅需配置完触摸芯片后触摸芯片返回触摸坐标(电容触摸芯片返回就是实际坐标值),按下,松手和移动三种状态发送给GUIX即可。...然后最终数值代入通过触摸校准建立线性公式来获得实际坐标值,此时就可以触摸坐标触摸按下,松手和移动状态发送给GUIX。...默认是定时任务里面,定义了下面函数后,直接在定时器中断里面处理,可以去掉定时器任务所消耗资源。...功能说明: 1个触摸坐标值压入触摸FIFO缓冲区。...8.9.5 更新画布canvas内容LCD显存 当前GUIX显示是采用画布机制,即GUIX先在画布上把界面绘制好,然后画布需要更新区域绘制LCD。

80620

【STM32F429】第7章 ThreadX GUIX移植STM32F429(MDK AC5)

触摸移植 电容触摸移植比较容易,因为电容触摸芯片可以自动触摸校准,所以仅需配置完触摸芯片后触摸芯片返回触摸坐标(电容触摸芯片返回就是实际坐标值),按下,松手和移动三种状态发送给GUIX即可。...然后最终数值代入通过触摸校准建立线性公式来获得实际坐标值,此时就可以触摸坐标触摸按下,松手和移动状态发送给GUIX。...默认是定时任务里面,定义了下面函数后,直接在定时器中断里面处理,可以去掉定时器任务所消耗资源。...功能说明: 1个触摸坐标值压入触摸FIFO缓冲区。...7.9.5 更新画布canvas内容LCD显存 当前GUIX显示是采用画布机制,即GUIX先在画布上把界面绘制好,然后画布需要更新区域绘制LCD。

89040

【STM32H7】第8章 ThreadX GUIX移植STM32H7(MDK AC6)

触摸移植 电容触摸移植比较容易,因为电容触摸芯片可以自动触摸校准,所以仅需配置完触摸芯片后触摸芯片返回触摸坐标(电容触摸芯片返回就是实际坐标值),按下,松手和移动三种状态发送给GUIX即可。...然后最终数值代入通过触摸校准建立线性公式来获得实际坐标值,此时就可以触摸坐标触摸按下,松手和移动状态发送给GUIX。...默认是定时任务里面,定义了下面函数后,直接在定时器中断里面处理,可以去掉定时器任务所消耗资源。...功能说明: 1个触摸坐标值压入触摸FIFO缓冲区。...8.9.5 更新画布canvas内容LCD显存 当前GUIX显示是采用画布机制,即GUIX先在画布上把界面绘制好,然后画布需要更新区域绘制LCD。

83530

【STM32H7】第7章 ThreadX GUIX移植STM32H7(MDK AC5)

触摸移植 电容触摸移植比较容易,因为电容触摸芯片可以自动触摸校准,所以仅需配置完触摸芯片后触摸芯片返回触摸坐标(电容触摸芯片返回就是实际坐标值),按下,松手和移动三种状态发送给GUIX即可。...然后最终数值代入通过触摸校准建立线性公式来获得实际坐标值,此时就可以触摸坐标触摸按下,松手和移动状态发送给GUIX。...默认是定时任务里面,定义了下面函数后,直接在定时器中断里面处理,可以去掉定时器任务所消耗资源。...功能说明: 1个触摸坐标值压入触摸FIFO缓冲区。...7.9.5 更新画布canvas内容LCD显存 当前GUIX显示是采用画布机制,即GUIX先在画布上把界面绘制好,然后画布需要更新区域绘制LCD。

62630

Flutter 3.0 之 PlatformView :告别 VirtualDisplay ,拥抱 TextureLayer

,然后「draw方法里通过super.draw(surfaceCanvas); Android View Canvas 替换成PlatformView创建SurfaceTexture Canvas...接着 Flutter 通过 override 了 PlatformViewWrapper draw(Canvas canvas)方法,然后 super.draw 把默认 View Canvas..."AndroidView",其实他们就真正”点击是正在渲染 Flutter 纹理 ,用户产生触摸事件是直接发送到 Flutter View ,而不是他们实际点击 AndroidView。...如下图所示,是两个 TextView 通过 TextureLayer 方式添加到 Flutter 里 ,然后我们通过 Android Studio Layout Inspector 查看,可以看到...❞ 值得注意是, 「PlatformViewWrapper 里 onInterceptTouchEvent 返回了 true ,也就是触摸事件会被它拦截,而不会传递父控件,避免了 FlutterView

1.5K30

Android 内存优化】自定义组件长图组件 ( 长图滚动区域解码 | 手势识别 GestureDetector | 滑动计算类 Scroller | 代码示例 )

触摸事件传递给 GestureDetector : View.OnTouchListener 触摸监听器 onTouch 触摸回调方法 , 触摸事件传递给 mGestureDetector 处理..., distanceY 小于 0 , 应图片也向上滑动 , 解码区域 top 和 bottom 减小 ; 向下滑动分析 : 向下滑动 , 触摸坐标由小变大 , distanceY 大于...向上滑动 , 触摸坐标由大变小 , distanceY 小于 0 , 对应图片也向上滑动 , 解码区域 top 和 bottom 减小 ;...向下滑动 , 触摸坐标由小变大 , distanceY 大于 0 , 对应图片也向下滑动 , 解码区域 top 和 bottom 增加 ;...向上滑动 , 触摸坐标由大变小 , distanceY 小于 0 , 对应图片也向上滑动 , 解码区域 top 和 bottom 减小 ;

1.5K22

速读原著-Android应用开发入门教程(运动事件处理)

6.3 运动事件处理 触摸屏(TouchScreen)和滚动球(TrackBall)是 Android 除了键盘之外主要输入设备。...本例介绍另外触摸屏事件程序,这个程序 UI 界面,显示当前 MotionEvent 动作和位置。 ?..." android:layout_height="wrap_content"/> 另外一个示例程序,触摸屏按下、移动、抬起时候,坐标处绘制不同颜色点,标题栏显示当时动作和坐标...,触摸屏事件到来之后,接收到它,并且纪录发生事件坐标和动作,然后调用 invalidate()重新进行绘制。...MotionEvent 是用于处理运动事件类,这个类可以获得动作类型、动作坐标 Android 2.0 版本之后,MotionEvent 还包含了多点触摸信息,有多个触点同时起作用时候

30520

Android 事件分发】ItemTouchHelper 事件分发源码分析 ( 绑定 RecyclerView )

事件分发】事件分发源码分析 ( Activity 各层级事件传递 | Activity -> PhoneWindow -> DecorView -> ViewGroup ) 【Android 事件分发... , 调用 RecyclerView.addOnItemTouchListener 方法 , 为 RecyclerView 设置了触摸监听器 , 该触摸监听器是定义 ItemTouchHelper...成员变量 private final OnItemTouchListener mOnItemTouchListener ; // 添加了每个条目上触摸监听器 mOnItemTouchListener...(this); // 添加了每个条目上触摸监听器 mOnItemTouchListener // 该监听器是定义 ItemTouchHelper 成员变量..., 利用 Canvas 进行绘图 ; RecyclerView.ItemDecoration , 不仅仅只能绘制分割线 , 可以绘制任何图形 , 图片 , 颜色 , 与自定义组件绘制功能一样强大

37620

Android自定义圆形View实现小球跟随手指移动效果

实现思路: 1)自定义View,onDraw画圆作为小球; 2)重写自定义ViewonTouchEvent方法,记录触屏坐标,用新坐标重新绘制小球; 3)布局引用自定义View布局,运行程序...case MotionEvent.ACTION_UP: // 获取当前触摸x,y坐标,为X轴和Y轴坐标重新赋值:getX()和getY()获得永远是view触摸位置坐标 x = (int) event.getX...Android UI操作并不是线程安全,并且这些操作必须在UI线程调用。    invalidate()是用来刷新View,必须是UI线程中进行工作。...比如在修改某个view显示,调用invalidate()才能看到重新绘制界面。invalidate()调用是把之前view从主UI线程队列pop掉。...* 2)一旦返回false,该方法再也不会收到MotionEvent.ACTION_MOVE及MotionEvent.ACTION_UP事件。

1.8K30

Android 应用开发】自定义View 和 ViewGroup

; (9)触摸方法 public boolean onTouchEvent(MotionEvent event) 发生触摸时间触发该方法; (10)焦点改变方法 public void onWindowFocusChanged...自定义View 自定义一个View组件铺满全屏, 绘制该View组件时候, onDraw()方法根据一个xy坐标绘制一个小球; 这个xy坐标触摸回调方法onTouchEvent()方法动态改变...ViewGroup简介 1.View和ViewGroup关系 UI组件Android位置 : AndroidUI组件大部分都放在android.widget 或者 android.view包...长宽等属性可以XML设置, 也可以代码设置;  (2)请求焦点 可以通过函数实现焦点转变, 可以根据不同焦点设置背景;  焦点类别 : 可获取焦点, 不可获取焦点, 可以获取但是正在触摸状态下焦点...; (3)设置事件监听 View本身发生变化时候, 会将信息广播出去, 这边变化例如 : 点击, 焦点改变等; 一个事件广播到来, 该事件就会传递相应View对应监听器里, 相当于回调View

46620

Android Heroes Reading Notes 2

ContentView实际上是一个FrameLayout,里面容纳就是我们xml布局文件定义布局。 ?...这是因为传进去Bitmap与通过这个Bitmap创建Canvas画布是紧紧联系在一起,这个Bitmap用来存储所有绘制Canvas像素信息,使用Bitmap创建Canvas之后,后面调用所有的...itemid 第五章 Android Scroll分析 1.获取坐标各种方法 图片来自Android坐标系以及获取坐标的方法 ?...2.实现滑动基本思想 触摸view,系统记下当前触摸坐标手指移动,系统记下移动后触摸坐标,从而获取到相对于前一次坐标偏移量,并通过偏移量来修改view坐标,这样不断重复,从而实现滑动过程...mViewDragHelper.shouldInterceptTouchEvent(ev); } @Override public boolean onTouchEvent(MotionEvent event) { //触摸事件传递

57110

Android自定义View使用及其原理知识点总结

我们Activity中使用findViewById()方法,就是控件树中用深度遍历方法搜索对应ID。...每个Activity都是包含着一个Window对象Android通常是PhoneWindow,他一个DecorView作为整个窗口根View,将要显示内容呈现在window上。...当我们想直接绘制出有背景颜色TextView,可以定义画笔,onDraw()进行绘制。...继承View类,我们还需要重写它onDraw(),onMeasure()、onTouchEvent()来实现绘制、测量和触摸事件。...Android坐标,我们都知道Android屏幕竖屏时候,以左上角位置为原点,向右为x轴正方向,向下为y轴正方向,知道了这个后,我们就可以通过调用getX()和getY()方法可以获取触摸坐标

38621

【STM32H7】第23章 ThreadX GUIX双缓冲实现

出现这个问题原因: 用户更新显存数据期间,LTDC(H7带LCD控制器)也不断读取显存数据显示屏上,如果用户才更新了部分界面数据,后面部分还没有更新,LTDC刷新到显示屏界面效果出现撕裂感...数 名: AppTaskMsgPro * 功能说明: 消息处理,这里用作GUIX双缓冲处理 * 形 参: thread_input 是创建该任务传递形参 * 返 回 值:...DMA2D->FGMAR = (uint32_t)0xC0400000 设置画布地址。通过DMA2D,GUIX画布内容更新到显存。...23.5.8 第8步:触摸和GUIX放到一个任务 为了触摸效果更好,触摸功能和GUIX应用功能都放到一个任务里面,程序代码如下: /* ************************...) GUIX Studio生成代码硬件平台实际运行工程,含有MDK AC5和AC6两个版本工程。

54340

高级 UI 成长之路 (一) View基础知识你必须知道

需要注意是,这些坐标都是相对于 View 父容器,因为它是一种相对坐标,View 坐标和父容器关系可以参考下图, Android ,x 轴 y 轴 正方向分别为右和下,这点不难理解,不仅仅是...computeCurrentVelocity 方法,第二点,这里速度是指一段时间内手指所滑过像素值,比如时间间隔设为 1000 ms ,那么就是 1s 内手指在水平方向从左向右滑动 500...触摸事件为 ACTION\_DOWN或是进入 onTouchEvent方法,通过 obtain获取一个 VelocityTracke 触摸事件为 ACTION\_UP,调用 recycle进行释放...并且 View 左边缘 View 内容左边缘右边, mScrollX 值为正,反之为负,通俗来讲就是如果从左向右滑动,那么 mScrollX 为 负值,反之为正值。...并且 View 上边缘 View 内容上边缘下边,mScrollY 为正,反之为负,通俗来讲就是如果从上往下滑动,那么 mScrollY 为负值,反之为正值。

75110

图片画画板

onTouch() onTouch(View v,MotionEvent event)方法里面 参数:View对象是被触摸对象,MotionEvent对象是触摸事件对象 调用MotionEvent对象...事件为MotionEvent.ACTION_UP是手指离开屏幕 手指触摸屏幕 定义手指开始位置坐标startX startY 调用MotionEvent对象getX() 和 getY()方法,...可以得到坐标 手指移动时候,我们要获取新坐标newX和newY,方法和上面一样 调用Canvas对象drawLine()方法,画一条线,参数:startX,startY,newX,newY,paint...注意要从新更新画笔位置 调用ImageView对象setImageBitmap(bitmap)方法,把Bitmap显示控件里 onTouch()方法一定要返回true,才能被持续执行 点击保存按钮...(),文件名),文件名是时间戳 获取FileOutputStream对象 需要权限android.permission.WRITE_EXTERNAL_STORGE 使用系统图库查看图片 此时会看不到,以为图库只有

87970

切换按钮-自定义控件-拖动效果

重写ViewonTouchEvent()方法,传递进来MotionEvent对象 调用MotionEvent对象getAction()方法,获取当前动作 switch判断一下当前动作 事件为MotionEvent.ACTION_DOWN...是手指第一次触摸屏幕 事件为MotionEvent.ACTION_MOVE是手指在屏幕上移动 事件为MotionEvent.ACTION_UP是手指离开屏幕 手指触摸到屏幕 定义手指最后坐标lastX...调用MotionEvent对象getX() 方法,得到lastX手指在屏幕上移动 定义手指横向移动距离dis 调用getX()-lastX就是移动距离 定义滑动按钮左边就是这个移动距离...判断slideBtnLeft位于合理位置,0背景图宽度-滑动按钮宽度 调用invalidate()方法,刷新视图 onClick事件和onTouchEvent是有冲突 定义一个标志isDrag...变量,如果有拖动发生,就把这个变量赋值true onCllick()方法里面对这个变量进行判断 手指抬起时候 判断当前slideBtnLeft来确定当前按钮是开还是关状态 slideBtnLeft

1.2K20

2014-10-27Android学习------布局处理(七)------26个字母布局列表监听事件处理-----城市列表应用程序

这样,程序便可以特定事件被dispatch该view时候,通过callback函数给予适当响 应。...该方法View类定义,并且所有的View子类全部重写了该方法, 应用程序可以通过该方法处理手机屏幕触摸事件 参数event:参数event为手机屏幕触摸事件封装类对象,其中封装了该事件所有信息...该方法并不只处理一种事件,一般情况下三种触摸类型情况事件全部由onTouchEvent方法处理: MotionEvent.ACTION_DOWN:屏幕被按下:屏幕被按下,会自动调用该方法来处理事件...MotionEvent.ACTION_UP:屏幕被抬起:触控笔离开屏幕触发事件,该事件同样需要onTouchEvent方法来捕捉,然后方法中进行 动作判断。...那么我们来代码中加入输出日志 看看它是怎么执行: 首先我贴上这个类代码(加了输出跟踪日志): import android.content.Context; import android.graphics.Canvas

47030

Android中文API——ScrollView

public void draw (Canvas canvas) 手动绘制视图(及其子视图)指定画布(Canvas)。这个视图必须在调用这个函数之前做好了整体布局。...实现一个视图,不需要继承这个方法;相反,你应该实现onDraw(Canvas)方法。...参数 canvas 绘制视图画布 public boolean executeKeyEvent (KeyEvent event) 收到key事件,用户可以调用此函数来使滚动视图执行滚动,类似于处理由视图体系发送事件...如果onTouchEvent()返回true,你不会收到onInterceptTouchEvent()任何事件并且所有对触摸处理必须在onTouchEvent()中发生。 3....如果返回true,将不会收到以下任何事件:目标view收到同样事件但是会伴随ACTION_CANCEL,并且所有的更进一步事件将会传递到你自己onTouchEvent()方法而不会再在这里出现

4.5K30
领券