Android:调整画布以查看边框

时间:2011-08-30 22:01:05

标签: android image canvas screen

我使用触摸事件创建了自己的类来移动和缩放图库(画布)。 我遇到的问题是图片总是移动,甚至是屏幕外。正确的行为是图片的左边框必须位于左侧屏幕的边框或左侧的边框......并且与其余边框相同......

我尝试将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();
    }
    ...
}

谢谢:)

1 个答案:

答案 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;
}

有点难以理解这个问题,但就简单的算术而言,这应该可以胜任。

相关问题