我遇到以下問題,我試圖解決整個一天。 我將一個帶有相應高度和寬度的位圖圖片加載到ImageView中。 然後我使用矩陣來移動,縮放和旋轉圖像。 爲了縮放,我使用了postScale方法。 對於移動我使用postTranslate方法。 僅適用於旋轉我正在使用preRotate方法。 現在我需要獲得縮放圖像的因子,因爲我後來在另一個程序中需要這個因子。使用矩陣旋轉後獲取位圖的比例因子
使用矩陣的MSCALE_X和MSCALE_Y值只適用於我沒有旋轉。如果我旋轉了圖像,則比例值不再適合(因爲矩陣與api中顯示的公式相乘)。
現在我的問題是: 如何在旋轉圖像後仍能得到圖像的比例因子?
對於旋轉因子(度),它很簡單,因爲我將它存儲在一個額外的變量中,這個變量在旋轉時被增加/減少。 但是對於縮放因子,它不起作用,因爲如果我先將圖像縮小到50%,然後將其重新縮放到150%,那麼我將其縮放爲3倍,但原始縮放因子僅爲1.5)。
另一個例子是。即使我沒有重新縮放圖片,如果我旋轉它,它甚至會改變它的縮放因子。
//編輯: 最後,我自己解決了這個問題:)(做了一些數學計算,然後我想出了一些有趣的東西(或者說明顯的))。
這裏我的解決方案: 我發現值MSCALE_X和MSCALE_Y是通過使用餘弦函數(是的基本數學...)計算出來的。 (使用0°旋轉將導致X和Y內的正確scalingWidth和scalingHeight)。 (90°和270°導致scalingWidth/height爲0和180°會導致scalingWidth/Height乘以-1)。
這使我想到編寫以下函數: 該函數將當前矩陣保存在一個新的矩陣中。然後它將新矩陣旋轉到開始狀態(0°)。現在我們可以讀取矩陣中的非侵犯值MSCALE_X和MSCALE_Y(這是現在正確的比例因子)
嗨@Vion你可以向我們展示一些你的代碼在哪裏實現了新的矩陣。謝謝 。我和你有同樣的問題。 – donmj