自定义圆形,可根据鼠标移动,按下移动抬起事件

OpenCV:鼠标绘制+提取感兴趣区域 1.鼠标绘制 详情:Opencv函数setMouseCallback鼠标事件响应 1.设置MouseCallback函数,函数名可随意,但是参数要与MouseCallback的一致。 2.setMouseCallback() 2.以圆形为例,其中有矩形的方法 可以先提取出矩形的区域,再利用mask提取圆形的区域。 #include<opencv2/opencv.hpp> #include<iostream> #include<imgproc.hpp>.. 阅读详情

activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

 <com.example.lianxiday03_02customcircle.view.CustomCircleView
       android:layout_width="match_parent"
       android:layout_height="match_parent" />
</LinearLayout>

自定义的CustomCircleView 继承View

public class CustomCircleView extends View{

    //初始化paint画笔
    private Paint mpaint;

    //初始化的
    private int cx = 300;//圆的中心x轴
    private int cy = 300;//圆的原点y轴


    public CustomCircleView(Context context) {
        super(context);
    }

    public CustomCircleView(Context context, AttributeSet attrs) {
        super(context, attrs);
        mpaint = new Paint();
        mpaint.setColor(Color.GREEN);
        mpaint.setStyle(Paint.Style.STROKE);//空心的
        mpaint.setAntiAlias(true);//抗锯齿,,没有毛边儿
        mpaint.setStrokeWidth(10);//边框宽度

     }

    public CustomCircleView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        //分析事件的类型
        switch (event.getAction()){
            //鼠标按下:
            case MotionEvent.ACTION_DOWN:
                System.out.println("event ACTION_DOWN  = "+event.getRawX() + "  " + event.getRawY());
                break;
            case MotionEvent.ACTION_MOVE:
                System.out.println("event ACTION_MOVE ="+event.getRawX() + "  " + event.getRawY());

                cx = (int) event.getX();//getX(),是距离当前视图x轴的位置
                cy = (int) event.getY();//getY()是距离当前视图的y轴

                //刷新
                invalidate();
               // postInvalidate();//子线程刷新
                break;
            case MotionEvent.ACTION_UP:
                System.out.println("event ACTION_UP = " + event.getRawX() + "  " + event.getRawY());
                break;
        }
        return true;//必须返回true
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        //获取当前视图的宽度
       // int width = getWidth()/2;

        //第一个参数是 cx:x轴中心 cy: 第二个参数是y轴中心 第三个参数是半径  第四个是画笔
        canvas.drawCircle(cx,cy,200,mpaint);
    }
}
圆随鼠标点击移动 圆随鼠标点击移动 if (m_Shape==0) { rect.left=m_x-50; rect.right=m_x+50; rect.top=m_y-50; rect.bottom=m_y+50; pDC->Ellipse(&rect;); } else { rect.left=m_x-50; rect.right=m_x+50; rect.top=m_y-30; rect.bottom=m_y+30; pDC->Rectangle(&rect;); } 立即下载

相关推荐

鼠标移动(Mouse move)

就是这个(最终恶搞版本) 请勿用于正经途径(吐舌头)

【JavaScript】常见的事件(鼠标、键盘、表单等)

/ 获取 移动的时候 光标距离窗口左上角的位置 - 初始的时候 光标距离元素左上角的位置。// 如果代码进入这里,表示开关关闭,也就是鼠标抬起,不能拖拽。// 记录刚开始的时候鼠标距离元素左上角的位置。// 设置 div 的top left。事件按下的内容必须和出现的内容一致。✍评论:您的建议是我改进的良药!// 如果开关关闭 不能拖拽。// 默认元素不可以拖拽。// 1. 鼠标按下。// 2. 鼠标抬起。// 3. 鼠标移动。

浅陌繁星的博客 1924

从零开始,用Cadence Virtuoso手把手仿真一个1.5V LDO(附完整电路与仿真脚本)

本文详细介绍了如何使用Cadence Virtuoso从零开始仿真一个1.5V LDO,包括环境准备、电路导入、Testbench构建、核心仿真类型分析以及高级调试技巧。通过完整的电路与仿真脚本,帮助读者掌握LDO设计与仿真的关键技术,提升电路设计能力。

weixin_31309419的博客 445

【JavaScript】鼠标十大事件简介和测试

onclick:按下鼠标时触发。 ondblclick:在同一个元素上双击鼠标时触发。 onmousedown:按下鼠标键时触发。 onmouseup:释放按下的鼠标键时触发。 onmousemove:当鼠标在节点内部移动时触发。当鼠标持续移动时,该事件会连续触发。 onmouseenter:鼠标进入一个节点时触发,进入子节点不会触发这个事件。 onmouseleave:鼠标离开一个节点时触发,离开子节点不会触发这个事件。 onmouseover:鼠标进入一个节点时触发,进入子节点也会触发这个

归忆_AC的博客 1815

王道考研计算机网络课件全解析:从零搭建你的知识框架(附B站视频+PPT下载)

本文全面解析王道考研计算机网络课程的核心知识体系,从OSI七层模型到TCP/IP四层架构,详细讲解物理层、数据链路层、网络层、传输层和应用层的关键技术。提供高效学习路径、实战案例和常见误区警示,帮助考生系统构建计算机网络知识框架,适合计算机考研备考者参考学习。

leaf8的博客 564

pwscf与wannier90 Hands-On实战训练(一)——费米面计算为例

系列文章目录 Quantum Espresso Hands-On实战训练(三)——DOS计算 文章目录系列文章目录计算过程pwscf直接得到等能面pwscf和wannier90得到等能面pwscf直接得到等能面1. scf2. nscf3. 后处理pwscf和wannier90得到等能面1. Kpoints2. scf3. nscf4. pw2wan及wannier90.x5. XCrySDen可视化 计算过程 pwscf直接得到等能面 pwscf和wannier90得到等能面 pwscf直接得到等能面

weixin_45973682的博客 5070

自定义鼠标事件在拖拽中的使用

自定义鼠标事件在拖拽中的使用

qq_73917015的博客 480

Python实战:5分钟搞定滑动平均窗口计算(附完整代码+逐行注释)

本文深入解析Python中滑动平均窗口计算的实现与优化,提供Numpy、Pandas等多种高效方案,并附完整代码和逐行注释。涵盖边界处理、性能优化及异常检测等实战技巧,帮助开发者快速掌握时间序列数据处理的核心技术。

weixin_30872157的博客 124

Qt-自定义控件&鼠标事件&键盘事件&定时器&绘图

事件 与 信号&槽的功能类似事件 VS 信号&槽事件与信号是两个不同层面的东西,发出者不同,作用对象也不同。事件由外部实体 ( 鼠标、键盘等 ) 生成,事件更偏底层。信号由按钮等 Qt 对象生成,例如:按钮的 clicked 信号。使用 Qt 内置组件,一般使用信号&槽;使用自定义组件时,一般使用事件QWidget 是所有控件的父类,在 Protected Functions 中提供了各种事件的虚函数。子类在继承父类时,自己实现所需要的事件虚函数。

m0_74380601的博客 1682

DRV2605L触觉驱动芯片实战指南:从自动校准到音频转触觉应用

触觉反馈技术是现代人机交互的核心组成部分,它通过精确控制振动马达来模拟物理触感,广泛应用于智能手机、游戏手柄和汽车触摸屏等领域。其原理在于将电信号转化为机械振动,关键在于如何高效、精准地驱动不同类型的马达(如ERM和LRA)。这项技术的核心价值在于提升交互的真实感和沉浸感。在工程实践中,集成驱动芯片如DRV2605L通过内置智能反馈引擎和自动校准功能,解决了传统驱动方式响应慢、效果不一致的难题。它特别适用于需要高质量触觉反馈的应用场景,例如消费电子、游戏外设和车载信息娱乐系统。其中,自动校准能自适应优化驱动

weixin_42631411的博客 342

鸿蒙系统开发工程师:核心技术解析与深度面试指南

摘要: 鸿蒙系统开发工程师需具备底层驱动开发、系统移植优化及分布式架构能力。核心职责包括硬件适配(Bootloader、内核移植、HDF驱动开发)、性能调优(启动加速、功耗管理)及稳定性保障。技术要求涵盖C/C++编程、Linux内核机制、鸿蒙架构(HDF、分布式服务)及ArkTS/ArkUI基础。面试重点考察系统移植流程(如ARM板适配)、驱动开发(I2C/Display)、性能优化手段及内存/同步机制的应用。

郑伟强dev的专栏 430

自定义控件和事件过滤器两种方式实现鼠标按下、移动、释放事件

Qt中事件过滤器与自定义控件/鼠标跟踪/坐标/globalpos/pos

2301_79728641的博客 752

华为OD机试真题2025双机位A卷 Java&Go 实现【采购订单】

在一个采购系统中,采购申请(PR)需要经过审批后才能生成采购订单(PO)。每个PR包含商品的单价(假设相同商品的单价一定是一样的)及数量信息。系统要求对商品进行分类处理:单价高于100元的商品需要单独处理,单价低于或等于100元的相同商品可以合并到同一采购订单PO中。针对单价低于100的小额订单,如果量大可以打折购买。

MISAYAONE的博客 1259

OpenCV之鼠标

文章目录一、窗口下鼠标事件处理setMouseCallback() 一、窗口下鼠标事件处理setMouseCallback() 原型: void setMouseCallback( const String &winname, MouseCallback onMouse, void* userdata=0 ); 参数 winname:窗口的名字 onMouse:回调...

sandalphon4869的博客 317

TIP 2024 | 跨类与跨域语义增强用于域泛化

域泛化方法旨在通过多样化的源域帮助开发一个在未知目标域上表现良好的通用模型。数据增强已被证明是增强计算机视觉中域泛化的有效方法。最近,基于语义级别的数据增强取得了显著成果。然而,这些方法主要集中在从类内和域内采样语义方向,限制了源域的多样性。为了解决这个问题,作者提出了一种新的方法,称为跨类与跨域语义增强(CDSA)。首先,作者引入了一种基于采样的方法CrossSmooth,从跨类中获取语义方向。然后,CrossVariance通过采样语义方向获取不同域的样式。

小白学视觉 212

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

自定义控件 实现圆形跟随鼠标点击移动

public class MainActivity extends AppCompatActivity { private int screenW; //屏幕宽度 private int screenH; //屏幕高度 @Override public void onCreate(Bundle savedInstanceState) { ...

义不容辞的博客 981

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

OpenCV鼠标响应事件

学习OpenCV中的鼠标响应函数。

2301_80195716的博客 578

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

拖拽移动位置

<style> #dv { width:100px; height:100px; background-color:blue; border-radius:50%; position:absolute; } </style> <div id='dv'></div> <script> //获取元素 var dv =...

lilongxian的博客 414

opencv学习笔记Day04:鼠标事件

文章目录初次尝试更深层次的应用 初次尝试 opencv鼠标事件的响应: CV_EVENT_MOUSEMOVE =0,//移动 CV_EVENT_LBUTTONDOWN =1,//左键按下 CV_EVENT_RBUTTONDOWN =2,//右键按下 CV_EVENT_MBUTTONDOWN =3,//中键按下 CV_EVENT_LBUTTONUP =4,//...

qq_45416295的博客 405

Python实现用鼠标拖动Canvas上的图形或图像使其移动(有问题参见后边文章)

Canvas上可能有许多图形或图像,要用鼠标拖动图形或图像使其移动,首先要判断鼠标是否点击到图像或图形上,如点击到图像或图形上,要找到其ID,然后用Canvas方法move拖动指定ID的图形或图像到新位置。

geng_zhaoying的博客 4934

用System.Drawing类实现的绘制直线、矩形、圆形的方法。

如标题所言,使用System.Drawing类来实现简单图形的绘制,这个项目使用C#语言进行winform窗体应用开发,主要功能有:绘制直线、绘制矩形、绘制圆形、ESC结束绘制、清空画布。

weixin_43621583的博客 3759

html图片的移动,html的图片移动(js)

*{padding: 0;margin: 0}#open{width: 300px;height: 300px;background-color: brown;position: relative;border-radius:50%;}#dv {width:100px;height:100px;/*background-color:blue;*/border-radius:50%;position...

weixin_42709044的博客 314

canvas drawbitmap不出现_「 原创 」徒手撸浏览器 Canvas 涂鸦白板 - 实现圆形橡皮擦...

众所周知,Canvas 清除画布内容的 API 是 clearRect 方法,且调用该方法 清除的是矩形区域。日常中,用的更多的却是 圆形区域 的橡皮擦。擦除效果要实现圆形效果的橡皮擦,就不得不提 Canvas API 中的 clip 裁剪方法了,实现的方案就是根据尺寸大小,绘制相应的圆(arc),接着将这部分内容裁剪,在裁剪的区域内,执行 clearRect 方法,清除掉整个裁剪区域,不影响主屏...

weixin_29672983的博客 302

Processing鼠标键盘

一、鼠标 1、鼠标坐标: Processing的2D坐标系统,是以窗口的左上角为起点,作为(0, 0)点,x轴正方向向右延伸,y轴正方向向下延伸。而描述鼠标的位置信息,用的就是坐标值。坐标值其实就是一个点,包括了x坐标值和y坐标值。所遵循的坐标系,就是Processing的2D坐标系统。 那如何实时获取鼠标的坐标值呢?Processing直接给出了两个变量,这两个变量是系统定义好的,直接拿来...

赶路人儿 1万+

计算机视觉OpenCv学习系列:第四部分、键盘+鼠标响应操作

计算机视觉OpenCv学习系列:第四部分、键盘+鼠标响应操作

weixin_52836217的博客 2827
上一篇: 自定义弧形进度条,百分比的值在变化
下一篇: 修改ActivityStudio项目名
Developer_Sir
博客等级 码龄9年 3粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值