2011-11-22 30 views

回答

1

請勿撥打animation.startAnimation(animation)。只需撥打startAnimation(animation);this.startAnimation(animation);

+0

試過了。它沒有工作。 –

+0

動畫動畫= null; 動畫=新ScaleAnimation(2,4,2,4,10animation.setDuration(3 * 1000); \t \t \t startAnimation(動畫); –

+0

去年評論抱歉,我想這是因爲我不能在傳遞圓圈到動畫讓它知道需要動畫的對象 –

0

Animation對象用於動畫View對象。如果你正在使用view.onDraw()自己繪製圓,那麼你應該真的只是自己縮放圓。

更新:動畫對象用於從應用程序的主線程動畫Views。主線程與UI線程不同,並且對象提供了一種很好的方式來告訴UI線程從主線程中繪製動畫。但是,onDraw是從UI線程中調用的,所以使用Animation對象沒有意義,因爲執行的代碼已經在UI線程的範圍內。

更新2:這裏是正確的方法的例子執行ScaleAnimation

float startScaleX = 1.0f; 
float startScaleY = 1.0f; 
float endScaleX = 2.0f; 
float endScaleY = 2.0f; 
Animation a = new ScaleAnimation(startScaleX, endScaleX, startScaleY, endScaleY); 
a.setDuration(1000); 

View view = findViewById(R.id.my_view); 

view.startAnimation(a); 

注意,我創建了animation對象後,我打電話view.startAnimation(a)。運行動畫而不將其附加到視圖是沒有意義的。

+0

這是一個View對象,不是?他擴展了View。 – LuxuryMode

+0

不,如果你看代碼'CircleOverlay'擴展'Overlay',它是'java.lang.Object'的子類' - > http://code.google.com/android/add-ons/google-apis/reference/com/google/android/maps/Overlay.html – slayton

+0

請簡要舉一個這樣的例子。謝謝 –