老套路先上图
核心代码使用view的缩放API即可
setScaleX(scale);
setScaleY(scale);
在看下自定义可缩放的view
package cn.xiayiye5.xiayiye5library.view;
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.RelativeLayout;
/**
* @author : xiayiye5
* @date : 2021/3/26 15:37
* 类描述 : 缩放ViewGroup
*/
public class ScaleLayout extends RelativeLayout implements View.OnTouchListener {
private boolean isCanTouch = false;
/**
* 当前触摸的点数
*/
private int pointNum = 0;
//最大的缩放比例
public static final float SCALE_MAX = 8.0f;
private static final float SCALE_MIN = 1.0f;
private double oldDist = 0;
private double moveDist = 0;
/**
* 针对控件的坐标系,即控件左上角为原点
*/
private double moveX = 0;
private double moveY = 0;
private double downX = 0;
private double downY = 0;
// 针对屏幕的坐标系,即屏幕左上角为原点
private double moveRawX = 0;
private double moveRawY = 0;
public ScaleLayout(Context context) {
this(context, null);
}
public ScaleLayout(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public ScaleLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(con