通过自定义ImageView和实现OnTouchListener 来实现图片的手势滑动和缩放功能

本文介绍了如何在Android中通过自定义ImageView并实现OnTouchListener,结合PointF、Matrix和MotionEvent来实现图片的手势滑动和缩放功能。主要涉及到Matrix的平移和缩放方法,以及对MotionEvent的动作常量判断,如ACTION_DOWN、ACTION_MOVE等,通过不同模式(拖拽和缩放)处理图片的移动和缩放操作。
摘要由CSDN通过智能技术生成

本文会使用到的类 : PointF ,Matrix 以及 MutionEvent 。

下面就来介绍一下这几个类在本文中的作用


PointF :

顾名思义 Point就是点的意思 ,F则是Float ,所以这个类实现了一个以Float为单位的一个点的功能。

参数为x和y轴的坐标。

实现方法:PointF point = new PointF(0.2f,0.2f);


Matrix:

这个类表示的是一个3x3的矩阵,本文中不详细说明。

Matrix是实现了平行和旋转还有缩放功能的一个类,这里是用的是graphis包中的Matrix,

本文中会用到该类的两个方法

postTranslate(x,y);

postTranslate方法是平移,里面的参数x为横向平移距离,y为纵向平移距离。


postScale(scale,scale,mX,mY) 

postScale方法是缩放,这里的scale指的是缩放倍数,这里xy都缩放scale倍,而后两个参数则是缩放的中心点。


 MutionEvent:


mutionEvent则是所有触点的集合.他的对象是一个数组;我们可以通过get来获取到触点的信息。

以及一些动作常量。

ACTION.POINTER.DOWN:有pointer的为副触点 该变量指定的为两个或者两个以上的触点摁下的动作

ACTION.DOWN: 为单一触点摁下的动作

ACTION.MOVE:为 移动动作

等等 等下代码里可以看出来其他的用途


介绍完本文要用的类,来看一下怎么实现图片的平移和缩放的思路

1.继承ImageView并复写View.onTouchListener接口

2.在构造方法里触发onTouchListener的点击事件

3.在onTouch里面 对v.getAction进行判断 一共分为一下几种情况:

单指点下,单指松开,多指摁下,多指松开,进行不同的事件处理。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值