我在缩放位图时遇到问题,然后在 Android 中绘制它。从一开始,我就有一个自定义视图,使用 onDraw 方法,我在它的画布上绘制一些东西。现在,我想平滑地缩放该绘图(仍在画布上),然后在该画布上绘制一些东西,而不清除它(在该缩放绘图上)。如何做到这一点?
我尝试使用内置动画机制缩放整个视图。缩放是平滑的,但不是这样,因为它是缩放整个组件,而不仅仅是绘图。有什么方法可以平滑地缩放绘图然后在上面绘图?
提前致谢。
我在缩放位图时遇到问题,然后在 Android 中绘制它。从一开始,我就有一个自定义视图,使用 onDraw 方法,我在它的画布上绘制一些东西。现在,我想平滑地缩放该绘图(仍在画布上),然后在该画布上绘制一些东西,而不清除它(在该缩放绘图上)。如何做到这一点?
我尝试使用内置动画机制缩放整个视图。缩放是平滑的,但不是这样,因为它是缩放整个组件,而不仅仅是绘图。有什么方法可以平滑地缩放绘图然后在上面绘图?
提前致谢。
您可以自己实现缩放动画。invalidate()
只要您需要扩展和测量onDraw()
调用之间的时间并计算您需要的扩展量,您就可以调用。缩放本身可以通过调用canvas.drawBitmap(bitmap, matrix, paint)
矩阵必须代表缩放的位置来完成。
另一种方法是使用ScaleAnimation,其中Transformation包含您也可以使用的矩阵。
在位图上绘图很简单:只需在onDraw()
绘制缩放图像后在同一个画布上绘图。由于只有图像缩放,新绘制的东西没有缩放。
第三种解决方案可能更复杂一些。你可以,而不是缩放位图,只是缩放画布。缩小画布,在其上绘制位图并恢复画布。之后,您可以绘制其余部分。