1.创建接受并处理View中onTouchEvent的类MultiTouchImpl,在其构造方法中需要传入监听接口,在MultiTouchImpl类中创建一个public方法onTouchEvent来接收View中传递过来的触摸事件
写onTouchEvent方法:
ACTION为ACTION_POINTER_DOWN时(表示第二次按下):1.记录按下的两个点 2.计算缩放锚点 3.计算两点之间距离 4.抛出监听的抽象方法
ACTION为ACTION_POINTER_UP时(表示第一次抬起):1.记录抬起时的点2.判断是否发生最终缩放3.若发生缩放,则抛出监听的抽象方法,否则return false
ACTION为ACTION_MOVE时:1.记录move的点2.计算两点之间距离,并与距离的初始值进行比较,计算出缩放比例,3.抛出监听的抽象方法
import android.graphics.PointF;
import android.graphics.RectF;
import android.view.MotionEvent;
// MultiTouchImpl.java
// 实现多点触摸缩放功能
public class MultiTouchImpl {
enum MULTI_TOUCH_MODE {
DRAG_ON, DRAG_OFF
}
public final static int MAX_TOUCH_POINTS = 2;
MULTI_TOUCH_MODE