假设您正在谈论这个 TouchImageView,您可以添加一个将逻辑包装在里面的方法
public boolean onScale(ScaleGestureDetector detector);
在一个名为的方法中setScaleFactor(float scaleFactor, float focusX, floatY);
这样,onScale
方法看起来像.-
@Override
public boolean onScale(ScaleGestureDetector detector) {
float mScaleFactor = detector.getScaleFactor();
setScaleFactor(mScaleFactor, detector.getFocusX(), detector.getFocusY());
return true;
}
你可以打电话
setScaleFactor(1.0f, 0.5f, 0.5f);
'重置'规模。
编辑
假设您正在使用TouchImageView
上面链接中给出的实现,setScaleFactor
看起来像这样。-
public void setScaleFactor(float mScaleFactor, float focusX, float focusY) {
float origScale = saveScale;
saveScale *= mScaleFactor;
if (saveScale > maxScale) {
saveScale = maxScale;
mScaleFactor = maxScale / origScale;
} else if (saveScale < minScale) {
saveScale = minScale;
mScaleFactor = minScale / origScale;
}
if (origWidth * saveScale <= viewWidth || origHeight * saveScale <= viewHeight) {
matrix.postScale(mScaleFactor, mScaleFactor, viewWidth / 2, viewHeight / 2);
} else {
matrix.postScale(mScaleFactor, mScaleFactor, focusX, focusY);
}
fixTrans();
}