android图片双指缩放,Android图片双指缩放,单指移动实现

本文介绍了如何在Android中创建一个自定义的ZoomDragImageView,实现了图片的双指缩放和平移功能。通过监听触摸事件,计算手指间距离和中点来调整图片的缩放比例,并进行相应的矩阵变换。代码中详细注释了关键步骤,如初始化缩放点、平移操作以及防止图片超出边界等。
摘要由CSDN通过智能技术生成

Android 实现,图片双指缩放,单指移动。通过自定义ImageView控件实现。

ZoomDragImageView.java代码如下:

public class SwZoomDragImageView extends ImageView implements View.OnTouchListener{

private static final String TAG = SwZoomDragImageView.class.getSimpleName();

private boolean support_touch = true;//支持触摸事件

private int mode = 0;// 初始状态

private static final int MODE_DRAG = 1;//平移

private static final int MODE_ZOOM = 2;//缩放

private static final float MAX_SCALE = 4f, MIN_SCALE = 1f;//最大放大倍数,最小放大倍数

float total_scale = MIN_SCALE , current_scale;//total_scale缩放范围2-1,当小于1回弹到1;当大于2回弹到2

private Matrix matrixNow = new Matrix();

private Matrix matrixBefore = new Matrix();

private Matrix mInitializationMatrix = new Matrix();//初始缩放值

private PointF actionDownPoint = new PointF();//点击点

private PointF dragPoint = new PointF();//平移点

private PointF startPoint = new PointF();//滑动点

private PointF mInitializationScalePoint = new PointF();//初始缩放点

private PointF mCurrentScalePoint = new PointF(0, 0);//当前缩放点

private float startDis;//滑动开始距离

/** 两个手指的中间点 */

private PointF midPoint = new PointF(0,0);

public SwZoomDragImageView(Context context) {

this(context, null);

}

public SwZoomDragImageView(Context context, AttributeSet attrs) {

this(context, attrs, 0);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值