本文会使用到的类 : 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进行判断 一共分为一下几种情况:
单指点下,单指松开,多指摁下,多指松开,进行不同的事件处理。