我正在開發我的第一個「真正的」Android應用程序,一個圖形化的工作流程編輯器。繪圖是在一個自定義類中完成的,這是View的一個子類。當時我的元素是矩形,它們在畫布上繪製。爲了檢測對元素的操作,我比較座標並檢查觸摸位置上的元素。居中放大縮小自定義視圖 - 計算畫布座標
要實現縮放手勢,我試圖http://android-developers.blogspot.com/2010/06/making-sense-of-multitouch.html
用4個參數canvas.scale(...)功能爲中心的縮放效果很好,但我失去了計算畫布的能力座標使用與mPosX偏移和mPosY來檢測變焦後的觸摸是否在元素上。
我試圖改變的例子在博客帖子上面居中在畫布上縮放手勢:
canvas.save();
canvas.translate(mPosX, mPosY);
canvas.scale(mScaleFactor, mScaleFactor, mScalePivotX, mScalePivotY);
//drawing ....
canvas.restore();
我沒有找到關於如何可以這樣做的任何實例不失參考偏移來計算座標。有一個簡單的解決方法嗎?我嘗試用手勢中心和縮放因子計算偏移量,但失敗:/
我已經看到使用ImageView的其他示例經常使用Matrix來轉換圖像。這可以通過自定義View和Canvas完成嗎?如果是的話,我怎麼能得到x和y偏移來檢查座標?另外,如果我的觀點完全錯誤,我會很高興看到一些關於如何正確完成的例子。
THX! ;)
嗨,我面臨着居中放大的問題。目前當我放大到點(0,0),我正在使用此方法canvas.scale(scaleFactor,scaleFactor);.你怎麼計算ScalePivotX和scalePivotY? 謝謝 – sajjoo 2012-01-12 09:38:55