我在縮放位圖時遇到了問題,然後在Android中繪製它。從一開始,我有一個自定義視圖,使用onDraw方法,我在畫布上繪製一些東西。現在,我想平滑地繪製該繪圖(仍在畫布上),然後在該畫布上繪製某些東西,而不清除它(在縮放的繪圖上)。如何做到這一點?在畫布上繪製,平滑縮放並繪製更多圖片
我試過用內置動畫機制縮放整個視圖。縮放比較流暢,但不是這樣,因爲縮放整個組件,不僅僅是繪製。有什麼方法可以順利地繪製圖形,然後繪製它?
在此先感謝。
我在縮放位圖時遇到了問題,然後在Android中繪製它。從一開始,我有一個自定義視圖,使用onDraw方法,我在畫布上繪製一些東西。現在,我想平滑地繪製該繪圖(仍在畫布上),然後在該畫布上繪製某些東西,而不清除它(在縮放的繪圖上)。如何做到這一點?在畫布上繪製,平滑縮放並繪製更多圖片
我試過用內置動畫機制縮放整個視圖。縮放比較流暢,但不是這樣,因爲縮放整個組件,不僅僅是繪製。有什麼方法可以順利地繪製圖形,然後繪製它?
在此先感謝。
你可以自己實現縮放動畫。只要您需要縮放和測量onDraw()
調用之間的時間並計算所需的縮放量,您可以撥打invalidate()
。縮放本身只需通過調用canvas.drawBitmap(bitmap, matrix, paint)
即可完成,其中矩陣必須表示縮放比例。
另一種方法是使用ScaleAnimation,其中Transformation包含您也可以使用的矩陣。
在位圖上繪製很簡單:只需在繪製縮放後的圖像後在onDraw()
中繪製同一個畫布。由於只有圖像縮放,新繪製的東西不會縮放。
第三個解決方案可能會更復雜一點。你可以,而不是縮放位圖,只是縮放畫布。縮小畫布,在其上繪製位圖並恢復畫布。之後,你可以畫出其餘的。
我喜歡ScaleAnimation的效果,但它應該做什麼?在我的自定義視圖? – Karol159
基本上你應該開始動畫並使用'getTransformation()'通過變換上的'getMatrix()'獲得Transformation對象和矩陣。使用該矩陣,您應該可以縮放位圖。 – WarrenFaith
感謝您的幫助。奇蹟般有效。 – Karol159
平滑繪畫意味着像動畫? – WarrenFaith
是的,我想用動畫來縮放 – Karol159