手势控制控件的缩放,平移和旋转:
mapView是要移动的控件,TouchLayout是手势控制的区域,具体代码如下:
touchLayout.setOnTouchListener(new TouchListener());
class TouchListener implements View.OnTouchListener {
//以下代码为地图的手势控制
private final int DRAG = 1;
private final int ZOOM = 2;
private final int NONE = 0;
private int mode = NONE;
private float x_down = 0;
private float y_down = 0;
private PointF start = new PointF();
private PointF mid = new PointF();
private float oldScale = 1;
private float oldDist = 1f;
private float oldAngle = 0;
private float oldRotation = 0;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTIO