您的位置:首页 > 其它

检测手机最多可以几个点触摸

2017-07-09 19:23 148 查看
单点触摸屏触摸屏的功能发展由简及繁,最初的产品只支持最简单的操控,就是一个手指触摸屏幕上的一点来实现操控。比如我们天天在附件超市的POS终端机,或者在机场的check-in终端上进行的操作。以前,我们只能通过屏幕周边的机械按钮进行操控,单点触摸屏在此基础上实现了用户界面方面的一大进步。当然,机械和新型电容式触摸感应按钮在我们的家庭、办公室及其他地方无所不在:手机、固定电话、遥控器、电视、电脑及其各种外设、游戏机、电冰箱、微波炉、烤箱,以及无线电和空调等车内电子控制设备等等这种屏幕为用户界面带来两大好处,一是设备设计空间得到优化,非凡有利于小型设备,因其能在同一区域内同时“安装”屏幕和按钮;二是由于按钮能绑定于操作系统中的任意应用,所以设备使用的“按钮”可以达到无限多个。上述功能主要建立在电阻式触摸屏技术基础之上,在消费电子产品、机场报刊亭、食品杂货店POS终端和车载GPS系统等各种应用中都得到了广泛推广。1、多点触摸(MultiTouch)技术指的是允许计算机用户同时通过多个手指来控制图形界面的一种技术。与多点触摸技术相对应的当然就是单点触摸,单点触摸设备已经有很多的年头了,小尺寸的有触摸式手机,大尺寸最常见的就是银行里的ATM机和排队查询机。多点触摸设备是由可触摸设备(例如:计算机显示器、桌子、墙壁)或者触摸板组成,通过软件识别同时发触摸行为的点。2、通过多个手指来控制图形界面的一种技术。多点触摸设备是由可触摸设备(例如:计算机显示器、手机、平板电脑、墙壁)或者触摸板组成,通过软件识别同时发触摸行为的点。从而实现在没有鼠标、键盘等输入设备的情况下,通过对屏幕的触摸来实现各种操作。3、很多人以为多点触摸仅限于放大缩小功能。其实,放大缩小只是多点触摸的实际应用样例之一。有了多点触摸技术,怎么应用就可以通过无限想象来无限扩展。程序员可以把多点触摸应用到很多方面,从一定程度上改变或者创新出更多的操作方式来。典型的应用是,在硬玻璃上弹琴成为现实。如果把你的手机屏幕变成琴键,那么哄哄小女孩还是很有趣的。另一个典型的例子是苹果手机上的PS模拟器,通过多点触摸技术,实现了同时进行方向键和其他按钮的组合输入。
public class Myview extends View {
4000public Myview(Context context) { super(context); } public Myview(Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public Myview(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } public Myview(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint paint = new Paint(); for (Circle circle : circles) { circle.drawself(canvas, paint); } } @Override public boolean onTouchEvent(MotionEvent event) { //获取手指的行为 int action = event.getAction(); int action_code = action & 0xff; //手指的下标Index int pointIndex = action >> 8; //获取手指的坐标 float x = event.getX(pointIndex); float y = event.getY(pointIndex); //获取手指的名字ID int pointId = event.getPointerId(pointIndex); if (action_code >= 5) { action_code -= 5; } switch (action_code) { //case 5: case MotionEvent.ACTION_DOWN: //实例化圆 Circle circle = new Circle(x, y, pointId); //将圆添加到集合中 circles.add(circle); break; case MotionEvent.ACTION_UP: circles.remove(get(pointId)); break; case MotionEvent.ACTION_MOVE: for (int i = 0; i < event.getPointerCount(); i++) { int id = event.getPointerId(i); get(id).x = event.getX(i); get(id).y = event.getY(i); } break; } //重新调用onDraw 重绘 invalidate(); //重新绘制 子线程// postInvalidate(); return true; } public Circle get(int pointId) { for (Circle circle : circles) { if (circle.pointId == pointId) { return circle; } } return null; }}
public float x;public float y;public int r=100;public int pointId;int red;int green;int blue;Random random=new Random();public Circle(float x, float y, int pointId) {this.x = x;this.y = y;this.pointId = pointId;red=random.nextInt(255);green=random.nextInt(255);blue=random.nextInt(255);}public  void drawself (Canvas canvas , Paint paint){paint.setColor(Color.rgb(red,green,blue));canvas.drawCircle(x,y,r,paint);}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: