我正在爲android編寫一個應用程序(儘管我認爲這是一個普通問題),我需要顯示一個可以滾動和縮放的大圖像(在ImageView中)。我設法通過捕獲觸摸事件和執行矩陣轉換來實現滾動工作,並且我正在進行縮放。圖像縮放的正確轉換
如果我只是對圖像應用比例變換,它會放大原點,即屏幕的左上角。我想放大屏幕的中心。 從我讀過的,這意味着我需要一個轉換,使原點爲屏幕的中心。我認爲,所需要的是類似以下各項假設屏幕的中心是(5,5)爲簡單起見...
-Translate by (-5, -5)
-Scale by the zoom factor
-Translate by (+5, +5)*zoomfactor
不幸的是,這似乎沒有工作 - 變焦似乎走任何地方,但中心......有人可以幫我在這裏?
編輯:這是現在工作
Matrix zoommatrix = new Matrix();
float[] centerpoint = {targetimageview.getWidth()/2.0f, targetimageview.getHeight()/2.0f};
zoommatrix.postScale(zoomfactor, zoomfactor, centerpoint[0], centerpoint[1]);
zoommatrix.preConcat(targetimageview.getImageMatrix());
targetimageview.setImageMatrix(zoommatrix);
targetimageview.invalidate();
你可以發表你的轉換代碼? – AGrunewald 2010-01-29 16:32:50