Android ImageView 手势控制放大缩小 滑屏切换

主要思路是创建两个事件监听,

一个手势监听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 &#
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值