我有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操作系统一样顺畅地完成此操作?或者更有效率?
答案 0 :(得分:0)
我建议使用Androids ScaleAnimation。你可以anim.cancel()一个动画,如果再次启动它可能会在它被取消的地方恢复。文档建议在重用动画之前调用reset(),这样可能会有效。
如果它不起作用,您可以在暂停时保存动画状态,并在该点开始创建新动画,如果用户恢复动画。