2011-08-11 122 views
-1

我有一個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

我會建議使用Android的ScaleAnimation。您可以anim.cancel()動畫,如果再次啓動,它可能會恢復到取消它的位置。該文檔建議在重新使用動畫之前調用reset(),以便可以工作。

如果它不工作,你可以節省暫停動畫狀態,並從該點上創建一個新的動畫,如果用戶恢復動畫。