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 mode = MULTI_TOUCH_MODE.DRAG_OFF;
private PointF mTouchDownPoint0; // 按下触摸屏的位置
private PointF mTo

本文介绍如何在Android中实现根据手势进行缩放的自定义View。通过创建MultiTouchImpl类处理触摸事件,当ACTION_POINTER_DOWN时记录两点,ACTION_POINTER_UP时判断缩放并抛出监听方法,ACTION_MOVE时计算缩放比例。同时,定义监听接口包含OnDragBegin(), OnDraging()和OnDragEnd()方法,用于在自定义View中实现拖动和缩放的回调。"
119984118,9584542,HashMap多线程下的头插法环形死循环问题解析,"['Java', '多线程', '并发控制', '数据结构', 'HashMap']
最低0.47元/天 解锁文章
7700





