在画布上绘制,平滑缩放并绘制更多内容

时间:2013-01-22 17:12:43

标签: java android drawing android-canvas

我在缩放位图时遇到了麻烦,然后在Android中绘制它。从一开始,我有一个自定义视图,使用onDraw方法,我在画布上画了一些东西。现在,我想平滑地绘制该绘图(仍然在画布上),然后在该画布上绘制一些东西,而不清除它(在该缩放的绘图上)。如何做到这一点?

我尝试使用内置动画机制扩展整个视图。缩放是平滑的,但它不是方式,因为它正在缩放整个组件,而不仅仅是绘图。有没有办法顺利缩放绘图然后画上它?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以自己实施缩放动画。只要您需要缩放并测量invalidate()来电之间的时间并计算所需的缩放量,就可以致电onDraw()。缩放本身只需通过调用canvas.drawBitmap(bitmap, matrix, paint)来完成,其中矩阵必须表示缩放。

另一种方法是使用ScaleAnimation Transformation包含您可以使用的矩阵。

简单地绘制位图:在绘制缩放图像后,只需在onDraw()中绘制相同的画布。由于只有图像缩放,新绘制的内容不会缩放。

第三种解决方案可能有点复杂。您可以,而不是缩放位图,只需缩放画布。缩小画布,在其上绘制位图并恢复画布。之后你可以画出其余部分。