Android怎么通过触摸动态地在屏幕上画矩形效果
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要介绍了Android怎么通过触摸动态地在屏幕上画矩形效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android怎么通过触摸动态地在屏幕上画矩形效果文章都
千家信息网最后更新 2025年12月02日Android怎么通过触摸动态地在屏幕上画矩形效果
这篇文章主要介绍了Android怎么通过触摸动态地在屏幕上画矩形效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android怎么通过触摸动态地在屏幕上画矩形效果文章都会有所收获,下面我们一起来看看吧。
需求概述:
在屏幕上用手指画出一个区域,返回所圈的区域坐标。
技术实现:
自定义View,设置画笔及对应参数,在onTouchEvent()回调函数里,对触摸事件进行判断。画出矩形图形。
代码:
自定义View:
public class GameView extends View { // 声明Paint对象 private Paint mPaint = null; private int StrokeWidth = 5; private Rect rect = new Rect(0,0,0,0);//手动绘制矩形 public GameView(Context context){ super(context); //构建对象 mPaint = new Paint(); mPaint.setColor(Color.RED); //开启线程 // new Thread(this).start(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); //设置无锯齿 mPaint.setAntiAlias(true); canvas.drawARGB(50,255,227,0); mPaint.setStyle(Paint.Style.STROKE); mPaint.setStrokeWidth(StrokeWidth); mPaint.setColor(Color.GREEN); mPaint.setAlpha(100); // 绘制绿色实心矩形 canvas.drawRect(100, 200, 400, 200 + 400, mPaint); mPaint.setColor(Color.RED); canvas.drawRect(rect,mPaint); } @Override public boolean onTouchEvent(MotionEvent event) { int x = (int)event.getX(); int y = (int)event.getY(); switch (event.getAction()){ case MotionEvent.ACTION_DOWN: rect.right+=StrokeWidth; rect.bottom+=StrokeWidth; invalidate(rect); rect.left = x; rect.top = y; rect.right =rect.left; rect.bottom = rect.top; case MotionEvent.ACTION_MOVE: Rect old = new Rect(rect.left,rect.top,rect.right+StrokeWidth,rect.bottom+StrokeWidth); rect.right = x; rect.bottom = y; old.union(x,y); invalidate(old); break; case MotionEvent.ACTION_UP: break; default: break; } return true;//处理了触摸信息,消息不再传递 }}调用时,只需要在onCreate()函数里,直接添加就可以:
super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); gameView = new GameView(this); addContentView(gameView);
根据需要可以在自定义类中,加入返回圈定范围的函数。
ps:需要注意的是,在手指移动的时候,屏幕需要更新矩形时,原理上删除原来矩形,画上新矩形。但是由于空心矩形边厚度的存在,
会出现遗留的情况,此时要减去border厚度,可以解决上述问题。
Rect old = new Rect(rect.left,rect.top,rect.right+StrokeWidth,rect.bottom+StrokeWidth);
效果图:

关于"Android怎么通过触摸动态地在屏幕上画矩形效果"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"Android怎么通过触摸动态地在屏幕上画矩形效果"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
矩形
屏幕
效果
动态
函数
知识
内容
区域
厚度
对象
手指
篇文章
事件
代码
价值
信息
原理
参数
图形
坐标
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中学网络安全与道德教育读后感
单机商务软件开发
家妮的锋芒 数据库
建立一个云服务器
杭州煎饼网络技术有限公司网址
滨湖区加工软件开发
直播电商app软件开发价格
ice我的世界纯净生存服务器
来宾青年讲师网络安全培训
济宁融合互联网络科技公司
武汉宝库网络技术有限公司
林业电子数据库
北斗智谷网络技术
中职学院网络技术学校
软件开发二本大学排名
免开发云数据库
三国杀移动版有几个服务器
svn远程服务器管理
网络命运共同体网络安全
南京百瑞泽网络技术
金蝶kis数据库补丁
计量规划与网络安全
广东电脑软件开发服务
提升网络安全的方法
山西ai边缘计算服务器云主机
软件开发管理平台验收报告
软件开发 总体规划
数据库如何在表中添加信息
网络安全队伍特点
网络安全诈骗宣传片