자산에서 또는 드로어 블 객체를 사용하여 안드로이드에서 애니메이션 GIF를 재생하는 방법에 대한 자습서를 찾았습니다. 하지만 내가 원하는 것은 sdcard에서 gif 파일을 읽는 것입니다. gif를 읽는 프로젝트가 조금 변경되었습니다.안드로이드 - 파일에서 애니메이션 GIF 재생
주요 활동, 나는 기본적으로 gifMovieView 다음의 setContent (gifMovieView)을 GifMovieView 클래스의 생성자에서 , 내가 프로젝트 "eu.andlabs.tutorial.animatedgifs"처럼 영화 객체를 초기화 한 만듭니다. 하지만 decodeStream 대신에 파일 경로를 지정하는 decodeFile을 사용했습니다.
File file = new File (Environment.getExternalStorageDirectory().getAbsolutePath(),"piggy.gif");
if(file.exists()){
mMovie = Movie.decodeFile(file.getPath());
}
이 줄에 I/O 예외가 있습니다. 그것은 파일을 발견하지만 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이됩니다.
제안 사항?
사전에
포스트 당신의 로그 캣을. – 323go