public class GestureView extends View {    public GestureView(Context context) {        super(context);    }    TwofingerGestureDetector detector;    Paint paint;    public GestureView(Context context, AttributeSet attrs) {        super(context, attrs);        detector = new TwofingerGestureDetector();        paint = new Paint();        paint.setStyle(Paint.Style.STROKE);        paint.setStrokeWidth(30);    }    SparseArray mActivePointers = new SparseArray<>();    @Override    public boolean onTouchEvent(MotionEvent event) {        //当前DOWN或者UP的是手指的index        int curPointerIndex = event.getActionIndex();        //通过index获得当前手指的id        int curPointerId = event.getPointerId(curPointerIndex);        int actionMasked = event.getActionMasked();        switch (actionMasked) {            case MotionEvent.ACTION_DOWN:            case MotionEvent.ACTION_POINTER_DOWN:                PointF pointF = new PointF();                pointF.x = event.getX(curPointerIndex);                pointF.y = event.getY(curPointerIndex);                Path p = new Path();                p.moveTo(pointF.x, pointF.y);                mActivePointers.append(curPointerId, p);                break;            case MotionEvent.ACTION_MOVE:                for (int size = event.getPointerCount(), i = 0; i < size; i++) {                    Path path = mActivePointers.get(event.getPointerId(i));                    if (path != null) {                        path.lineTo(event.getX(i), event.getY(i));                    }                }                break;            case MotionEvent.ACTION_UP:            case MotionEvent.ACTION_POINTER_UP:                mActivePointers.remove(curPointerId);                break;        }        invalidate();        return true;    }    @Override    protected void onDraw(Canvas canvas) {        canvas.drawColor(Color.WHITE);        for (int size = mActivePointers.size(), i = 0; i < size; i++) {            Path path = mActivePointers.valueAt(i);            canvas.drawPath(path, paint);        }    }}

更多相关文章

  1. Android(安卓)获取手机当前所在的经纬度
  2. adb最新版下载地址
  3. Android关于桌面快捷方式工具类!
  4. android获得手机cpu型号
  5. Android中获取应用程序(包)的信息-----PackageManager的使用(一)
  6. Android(安卓)利用adb命令 使App自动点击屏幕指定位置
  7. Android(安卓)TimeLine 时间节点轴的实现
  8. android MediaRecorder录音
  9. android 自定义组件随着手指自动画圆

随机推荐

  1. android TextView设置字过多长长度后面显
  2. [Android] Nexus 7 二代连接 Windows 7
  3. live555移植到Android过程.
  4. android studio 开发 Execution failed f
  5. Android应用开发提高系列(5)——Android动
  6. Android(安卓)中级教程之------Android(
  7. Android程序员学IOS-UI篇
  8. [转]android Android(安卓)SDK Setup的使
  9. 《Android/OPhone 开发完全讲义》已出版,
  10. Android(安卓)内核源代码交叉编译(创建自