Android如何实现多点触控功能

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

发布于 2022-05-19 10:37:46
收藏
分享
海报
0 条评论
34
上一篇:java输入时怎么通过回车来结束输入 下一篇:C语言数据结构中的线性表怎么使用
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码