获取多触摸点
核心代码:
获取触摸点的个数和位置
public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: System.out.println("down"); break; case MotionEvent.ACTION_UP: System.out.println("触摸点的个数:"+event.getPointerCount()); System.out.println(String.format("x1:%f y1:%f x2:%f y2:%f",event.getX(0),event.getY(0),event.getX(1),event.getY(1)));// System.out.println("up");// FrameLayout.LayoutParams lp = (LayoutParams) image.getLayoutParams();// lp.leftMargin = (int)event.getX();// lp.rightMargin = (int)event.getY();// image.setLayoutParams(lp);// System.out.println(String.format("x:%f,y:%f", event.getX(),event.getY())); break; case MotionEvent.ACTION_MOVE: System.out.println("move"); break;
两个手指缩放android机器人图片
frame.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: System.out.println("down"); break; case MotionEvent.ACTION_UP: if (event.getPointerCount()>=2) { float offsetx = event.getX(0)-event.getX(1); float offsety = event.getY(0)-event.getY(1); currentDistance = (float) Math.sqrt(offsetx*offsetx+offsety*offsety); if (lastDisatance < 0) { lastDisatance = currentDistance; }else { if (currentDistance-lastDisatance > 5) { FrameLayout.LayoutParams lp = (LayoutParams) image.getLayoutParams(); lp.width = (int) (1.1f*image.getWidth()); lp.height = (int) (1.1f*image.getHeight()); image.setLayoutParams(lp); lastDisatance = currentDistance; }else if (lastDisatance-currentDistance > 5) { FrameLayout.LayoutParams lp = (LayoutParams) image.getLayoutParams(); lp.width = (int) (0.9f*image.getWidth()); lp.height = (int) (0.9f*image.getHeight()); image.setLayoutParams(lp); lastDisatance = currentDistance; } } }// System.out.println("触摸点的个数:"+event.getPointerCount());// System.out.println(String.format("x1:%f y1:%f x2:%f y2:%f",event.getX(0),event.getY(0),event.getX(1),event.getY(1))); // System.out.println("up"); // FrameLayout.LayoutParams lp = (LayoutParams) image.getLayoutParams(); // lp.leftMargin = (int)event.getX(); // lp.rightMargin = (int)event.getY(); // image.setLayoutParams(lp); // System.out.println(String.format("x:%f,y:%f", event.getX(),event.getY())); break; case MotionEvent.ACTION_MOVE: System.out.println("move"); break; default: break; } return false; } });