Android怎么通过触摸动态地在屏幕上画矩形效果
发表于:2025-01-29 作者:千家信息网编辑
千家信息网最后更新 2025年01月29日,这篇文章主要介绍了Android怎么通过触摸动态地在屏幕上画矩形效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android怎么通过触摸动态地在屏幕上画矩形效果文章都
千家信息网最后更新 2025年01月29日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安全错误
数据库的锁怎样保障安全
保定商库网络技术有限公司应该
我的世界开服务器收费吗
软件开发哪个职业含金量最高
石河子手机软件开发
服务器磁盘阵列
现代网络技术主要内容
计算机网络技术相关问题
数据库中怎么查看数据表中字段
台湾学术文献数据库账户密码
软件开发年度总结报告个人
携手维护网络安全稳定
咸阳服务器机柜
盐城市公安局网络安全支队在几楼
网络安全数据库建设
atlas服务器怎么开服
数据库的选取
店账通怎么导出数据库
网络安全办公室殷主任
上不了网dns服务器错误
服务器可以做堆叠么
河南游星网络技术有限公司的电话
文县网络安全检查
天津智云网络技术有限公司
中国电子商务数据库
网络安全法未成年保护
数据库表可以增加列嘛
psv重建安全数据库
即时通讯软件开发哪家产品好
中国水稻数据库天农20
软件开发前端和后端区别