2011-08-30 86 views
0

我使用觸摸事件爲畫廊移動和縮放圖片(畫布)創建了自己的類。 我的問題是,圖片總是移動,甚至是在屏幕外。正確的行爲是圖片的左邊界必須在左邊屏幕的邊界或左邊...並且與其餘邊界相同...Android:調整畫布以查看邊框

我嘗試將max和min設置爲mPosY和mPosX但它很難和複雜,因爲當圖片比屏幕小時,它必須居中......

任何想法?這裏是一些代碼:

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

是一個有點難以理解的問題,但在簡單的算術來說,這應該做的工作。