Android 实现根据手势进行缩放的View

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

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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值