自定义缩放动画

时间:2011-08-11 19:50:16

标签: android

我有800x480的图像,我希望有一个缩放动画,以便图像缩放到960x576。我知道Android有一个ScaleAnimation类,但我也希望用户能够在缩放时暂停动画,并从暂停的位置恢复。

我该怎么做?

我确实编写了一些自定义刷新循环,但它不像ScaleAnimation类那样非常流畅。自定义刷新循环只计算每25毫秒所需的宽度和高度变化,然后将新宽度设置为Rect。然后循环调用invalidate。

//Reset the image size
x = (x + dx);
y = (y + dy);
imageWidth =  (imageWidth + dWidth);
imageHeight =  (imageHeight + dHeight);
然后我在画布上画画。

outputRect.set((int)(-x), (int)(-y), (int)imageWidth, (int)imageHeight);
canvas.drawBitmap(bitmap, srcRect, outputRect, paint);

我如何能够像使用Android操作系统一样顺畅地完成此操作?或者更有效率?

1 个答案:

答案 0 :(得分:0)

我建议使用Androids ScaleAnimation。你可以anim.cancel()一个动画,如果再次启动它可能会在它被取消的地方恢复。文档建议在重用动画之前调用reset(),这样可能会有效。

如果它不起作用,您可以在暂停时保存动画状态,并在该点开始创建新动画,如果用户恢复动画。