Android学习之基于MotionEvent的移动和放缩

2019-12-10 18:41:04于海丽

我们知道,在每一个View里有一个onTouchEvent的方法可以重写,这个方法的作用就是能够监控你的手在屏幕上按下、移动、抬起的动作。 
这个方法提供了一个参数,就是一个MotionEvent对象,我们获取到event对象以后,就要对其行为进行判断,一般使用switch如下:

public boolean onTouchEvent(MotionEvent event) {
  switch (event.getAction()) {
  case MotionEvent.ACTION_DOWN:
    break;
  case MotionEvent.ACTION_UP:
    break;
  }
  return true;
}

今天我们介绍的主要是两种操作:五子棋盘的移动和放大缩小。

那么首先我们要画一个五子棋,在View的onDraw方法里,我们直接画线条,这里我们就不多说了:

@Override
protected void onDraw(Canvas canvas) {
  super.onDraw(canvas);
  // 画棋盘
  paint.setColor(Color.BLACK);
  for (int i = 0; i < GobangConfig.num; i++) {
    canvas.drawLine(GobangConfig.X, GobangConfig.Y + i
        * GobangConfig.size, GobangConfig.X
        + (GobangConfig.num - 1) * GobangConfig.size,
        GobangConfig.Y + i * GobangConfig.size, paint);
    canvas.drawLine(
        GobangConfig.X + i * GobangConfig.size,
        GobangConfig.Y,
        GobangConfig.X + i * GobangConfig.size,
        GobangConfig.Y + (GobangConfig.num - 1) * GobangConfig.size,
        paint);
  }
}

我们今天要做的有两件事情: