android如何实现多点触控功能-mile米乐体育

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如何实现多点触控功能”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注恰卡编程网网站,小编将为大家输出更多高质量的实用文章!

展开全文
内容来源于互联网和用户投稿,文章中一旦含有米乐app官网登录的联系方式务必识别真假,本站仅做信息展示不承担任何相关责任,如有侵权或涉及法律问题请联系米乐app官网登录删除

最新文章

网站地图