Android如何实现多点触控功能
发表于:2025-02-20 作者:千家信息网编辑
千家信息网最后更新 2025年02月20日,本篇内容介绍了"Android如何实现多点触控功能"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用
千家信息网最后更新 2025年02月20日Android如何实现多点触控功能
本篇内容介绍了"Android如何实现多点触控功能"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
使用了Android的系统API实现了多点触控功能,多点触控对设备的硬件有一定的要求,目前市面上的手机几乎都能实现多点触控了。
实现多点触控最关键的API:
event.getPointerCount()
意思是这事件中包含的数据的指针的数量,总是大于或等于1。可以简单理解为放在手机屏幕上的手指的数目,为什么总是大于或等于1呢?因为触发事件需要用手指去触屏,一触屏必然产生一个指针。
重写这两个函数:
一:
public boolean onTouchEvent(MotionEvent event)
调用一个触屏事件,通过操作event完成触屏相关事件的处理。
上代码:
public boolean onTouchEvent(MotionEvent event) {// if(event.getX(1)==event.getX(0)&&event.getY(1)==event.getY(0)) if (event.getPointerCount() == 2) { x2 = event.getX(1); y2 = event.getY(1); } x1 = event.getX(0); y1 = event.getY(0); myView.invalidate(); Log.d("multiTouch", event.getPointerCount() + " xy1: " + x1 + ", " + y1 + " xy2: " + x2 + ", " + y2); return super.onTouchEvent(event); }
二:
protected void onDraw(Canvas canvas)
通过重写onDraw来画图,Canvas的意思是" holds the "draw" calls to draw something"(官方文档的介绍,觉得这话已经很通俗易懂了)
上代码:
protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawColor(Color.WHITE); Paint paint = new Paint(); paint.setAntiAlias(true); paint.setStyle(Paint.Style.FILL); paint.setColor(Color.BLUE); canvas.drawCircle(x1, y1, 30, paint); canvas.drawRect(x2 - 30, y2 - 30, x2 + 30, y2 + 30, paint); paint.setColor(Color.RED); canvas.drawLine(x1, y1, x2, y2, paint); Shader mShader = new LinearGradient(0, 0, 100, 100, new int[] { Color.RED, Color.GREEN, Color.BLUE, Color.YELLOW }, null, Shader.TileMode.REPEAT); paint.setShader(mShader); paint.setTextSize(14); canvas.drawText("xy1: " + x1 + "; " + y1, 80, 50, paint); canvas.drawText("xy2: " + x2 + "; " + y2, 80, 120, paint); }
实现onDraw时需要在继承自View的一个类中完成
private class TestView extends View{ public TestView(Context context) { super(context); } ......}
完成以上操作以后主程序就简单了,初始化然后调用之前写好的代码
public class multiTouch extends Activity{ public float x1, x2, y1, y2; private TestView testView; @Override public void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); x1 = 30; y1 = 30; x2 = 200; y2 = 30; super.onCreate(savedInstanceState); testView = new TestView(this); setContentView(testView); }
实现效果图
圆圈代表第一次触屏时的手指,正方形表示第二次触屏时的手指。
"Android如何实现多点触控功能"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
多点
事件
手指
功能
上代
内容
意思
手机
指针
更多
知识
实用
通俗
学有所成
接下来
两个
主程序
代码
代表
关键
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库表主键 外键关联
明日之后家园服务器安装
数据库与系统图形
天津振华深探网络安全
济南 软件开发十年 工资
系统之间的网络安全
警校生网络安全教育心得体会
网络安全冷知识100例
三年服务器包括试用期吗
战地一怎么找到好友在哪个服务器
web服务器软件安全问题
任务发放软件开发
租服务器自己开网游
vpn 服务器搭建
最大数据库中心
网络安全幽默短片
串口服务器能做plc开关控制吗
单位网络安全规定及制度
2012服务器怎么远程桌面
上海营销软件开发销售价格
多台服务器怎样连接在一起
聊天服务器怎么登录
奔酷网络技术有限公司
网络安全板块午后下行
怎么拿下服务器
天天飞车违反网络安全法
连接ftp服务器出错
云服务器实例qps
数据库设计的想法
达梦数据库删除模式schema