主要思路是创建两个事件监听,
一个手势监听MyGuestListner继承SimpleOnGestureListener,负责双击图片后为ImageView设置新的放大缩小移动监听以及滑屏切换图片。
一个MulitPointTouchListener继承OnTouchListener,负责图片的放大缩小移动以及双击后还原图片大小和卸载ImageView当前监听。
放大缩小监听类
package com.dawnpro.dfacmobile.cpzs;
import android.graphics.Matrix;
import android.graphics.PointF;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
import android.widget.Toast;
import com.dawnpro.dfacmobile.utils.Global;
public class MulitPointTouchListener implements OnTouchListener {
//图像矩阵,用于缩放移动等图像操作
Matrix matrix = new Matrix();
Matrix savedMatrix = new Matrix();
Matrix originMatrix = new Matrix();
//点击或者手势操作类型
static final int NONE = 0;
static final int DRAG = 1;
static final int ZOOM = 2;
int mode = NONE;
//PointF 为坐标值的float形式
PointF start = new PointF();
PointF mid = new PointF();
float oldDist = 1f;
//判断是否双击的变量
//点击计数
private int count = 0;
//第一次点击的时间
private long firstTouch;
//第二次点击的时间
private long secondTouch;
//本张海报第一次点击
private boolean first = true;
@Override
public boolean onTouch(View v, MotionEvent event) {
ImageView view = (ImageView) v;
// 处理接受到的事件
switch (event.getAction() & MotionEvent.ACTION_MASK) {
//单手指(主)点击下触发
case MotionEvent.ACTION_DOWN:
//判断是否双击
count ++;
if(count == 1){
//记录第一次点击的时间
firstTouch = System.currentTimeMillis();
}else if(count &#