我使用触摸事件创建了自己的类来移动和缩放图库(画布)。 我遇到的问题是图片总是移动,甚至是屏幕外。正确的行为是图片的左边框必须位于左侧屏幕的边框或左侧的边框......并且与其余边框相同......
我尝试将max和min设置为mPosY和mPosX,但它很难复杂,因为当pic小于屏幕时,它必须居中...
有什么想法吗?这是一些代码:
public class TouchView extends View {
...
@Override
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.save();
canvas.translate(mPosX, mPosY);
mScaleFactor = Math.max( mScaleFactor, minScaleFactor);
canvas.scale(mScaleFactor, mScaleFactor, pivotX, pivotY);
mIcon.draw(canvas);
canvas.restore();
}
...
}
谢谢:)
答案 0 :(得分:1)
if(imageWidth < screenWidth && imageHeight < screenHeight) {
imageX = screenWidth / 2 - imageWidth / 2;
imageY = screenHeight / 2 - imageHeight / 2;
} else {
if(imageX > 0) imageX = 0;
if(imageY > 0) imageY = 0;
if(imageX + imageWidth < screenWidth)
imageX = screenWidth - imageWidth;
if(imageY + imageHeight < screenHeight)
imageY = screenHeight - imageHeight;
}
有点难以理解这个问题,但就简单的算术而言,这应该可以胜任。