android如何实现多点触控功能-mile米乐体育
开发技术
2022年05月19日 10:37
1
android如何实现多点触控功能
本篇内容介绍了“android如何实现多点触控功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
使用了android的系统api实现了多点触控功能,多点触控对设备的硬件有一定的要求,目前市面上的手机几乎都能实现多点触控了。
实现多点触控最关键的api:
event.getpointercount()
意思是这事件中包含的数据的指针的数量,总是大于或等于1。可以简单理解为放在手机屏幕上的手指的数目,为什么总是大于或等于1呢?因为触发事件需要用手指去触屏,一触屏必然产生一个指针。
重写这两个函数:
一:
publicbooleanontouchevent(motioneventevent)
调用一个触屏事件,通过操作event完成触屏相关事件的处理。
上代码:
publicbooleanontouchevent(motioneventevent){//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);returnsuper.ontouchevent(event);}
二:
protectedvoidondraw(canvascanvas)
通过重写ondraw来画图,canvas的意思是“ holds the “draw” calls to draw something”(官方文档的介绍,觉得这话已经很通俗易懂了)
上代码:
protectedvoidondraw(canvascanvas){super.ondraw(canvas);canvas.drawcolor(color.white);paintpaint=newpaint();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);shadermshader=newlineargradient(0,0,100,100,newint[]{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的一个类中完成
privateclasstestviewextendsview{publictestview(contextcontext){super(context);}......}
完成以上操作以后主程序就简单了,初始化然后调用之前写好的代码
publicclassmultitouchextendsactivity{publicfloatx1,x2,y1,y2;privatetestviewtestview;@overridepublicvoidoncreate(bundlesavedinstancestate){requestwindowfeature(window.feature_no_title);x1=30;y1=30;x2=200;y2=30;super.oncreate(savedinstancestate);testview=newtestview(this);setcontentview(testview);}
实现效果图
圆圈代表第一次触屏时的手指,正方形表示第二次触屏时的手指。
“android如何实现多点触控功能”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注恰卡编程网网站,小编将为大家输出更多高质量的实用文章!
展开全文