我發現了有關如何在Android中播放GIF動畫的教程,方法是從資源中讀取動畫或使用可繪製對象。但我想要的是從SD卡讀取gif文件。 我已經改變了從資產中讀取gif的項目。Android-從文件中播放GIF動畫
在主要活動,我基本上創造gifMovieView然後setContent(gifMovieView) 在GifMovieView類的構造函數,我初始化了Movie對象就像在項目範圍「eu.andlabs.tutorial.animatedgifs」。但我已經使用decodeFile給出文件路徑而不是decodeStream獲取inputStream。
File file = new File (Environment.getExternalStorageDirectory().getAbsolutePath(),"piggy.gif");
if(file.exists()){
mMovie = Movie.decodeFile(file.getPath());
}
我有這個行的GİVENI/O EXCEPTION。它找到該文件,但decodeFile發出異常。
在onDraw;
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(Color.TRANSPARENT);
super.onDraw(canvas);
final long now = SystemClock.uptimeMillis();
if (mMoviestart == 0) {
mMoviestart = now;
}
Log.i("",""+mMovie.duration());
Log.i("",""+mMoviestart);
final int relTime = (int)((now - mMoviestart) % mMovie.duration());
mMovie.setTime(relTime);
mMovie.draw(canvas, 10, 10);
this.invalidate();
}
由於例外,movie.duration變爲0導致錯誤。
有什麼建議嗎?
預先感謝您
安置自己的logcat的。 – 323go 2013-04-30 14:24:11