我知道已经有大量的线程讨论了如何实现捏合缩放,但是我已经做到了这一点。
我正在使用SimpleScaleGestureListener处理缩放。我设法确保您无法将图像缩小到比屏幕大小更小(因此您的图像高度始终至少与可用屏幕大小相同)。
但是,我正在寻找一种自动检测图像是否在这些边界之外进行平移的方法。就像标准的Android显示图像的方式一样。所以如果我放大并向上滑动图像,然后缩小,我希望它可以检测到图像底部何时到达屏幕底部,然后“枢轴”缩放调整,从而永远不允许图像本身的上方或下方出现“空白”。有人能帮帮我吗?
以下是我的onScale和onDraw方法:
public boolean onScale(ScaleGestureDetector detector){
float minScale = (float) ((float) SCREEN_SIZE.y / (float) DRAWABLE_SIZE.y);
mScaleFactor *= detector.getScaleFactor();
mScaleFactor = Math.max(minScale, Math.min(mScaleFactor, 5.0f));
invalidate();
return true;
}
protected void onDraw(Canvas canvas) {
canvas.save();
canvas.drawColor(Color.DKGRAY);
canvas.translate(mPosX, mPosY);
canvas.scale(mScaleFactor, mScaleFactor, getDrawable().getIntrinsicWidth() / 2,
getDrawable().getIntrinsicHeight() / 2);
this.getDrawable().draw(canvas);
canvas.restore();
}