2014-01-25 34 views
0

我使用下面的代碼運行一個GIF動畫android:我如何檢查電影已完成播放?

if (movieStart == 0) { 
    movieStart = (int) now; 
} 

if (mMovie != null) { 
    int relTime = (int) (now - moviestart); 

    if (relTime > mMovie.duration()) { 
    relTime = mMovie.duration(); 
    } 

    mMovie.setTime(relTime); 
    mMovie.draw(canvas, 
     getWidth()/2 - mMovie.width()/2, 
     getHeight()/2 - mMovie.height()/2); 

我的電影運行正常。我的問題是:我如何知道電影何時完成播放? (當然,我有我需要在動畫結束時啓動一個動作。)

順便說一下,我使用android.graphics.Movie

+0

我從來沒有用'android.graphics.Movie'工作,但是,假如你粘貼代碼中'的onDraw位於()' ,在'relTime> = mMovie.duration()'計算結果爲真後,電影不應該完全播放過一次嗎?你的代碼已經檢查過它,只是發起你的行動而不是'relTime = mMovie.duration();' – desseim

+0

@desseim你的建議有幫助。請您轉貼作爲回覆,以便我可以將此問題標記爲已解決? – learner

+0

完成,感謝您的建議,並很高興它幫助:) – desseim

回答

0

假如你粘貼代碼位於內的onDraw(),電影應該發揮在relTime >= mMovie.duration()評估爲真後完全一次。 您的代碼已經檢查了,所以你應該解僱你的行動,而不是relTime = mMovie.duration();

if (movieStart == 0) { 
    movieStart = (int) now; 
} 

if (mMovie != null) { 
    int relTime = (int) (now - moviestart); 

mMovie.setTime(relTime < mMovie.duration() ? relTime : mMovie.duration()); 
mMovie.draw(canvas, 
    getWidth()/2 - mMovie.width()/2, 
    getHeight()/2 - mMovie.height()/2); 

if (relTime >= mMovie.duration()) { 
    // move has played once 
    fireAction(); // or set a member variable or whatever 
} 
相關問題