내 스플래시 화면에서 .Gif 파일을 구현하고 싶습니다. 완료했습니다. 하지만 전체 화면으로 diply하지 않습니다. 화면의 왼쪽 상단 모서리를 보여줍니다. 솔루션전체 화면으로 .GIF 파일을 표시하는 방법
내 코드 :
<com.App.app.PlayGifView
android:id="@+id/viewGif"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
활동
PlayGifView pGif = (PlayGifView) findViewById(R.id.viewGif);
pGif.setImageResource(R.drawable.transit);
GifActivity :
i get this sample code from google
public class PlayGifView extends View {
private static final int DEFAULT_MOVIEW_DURATION = 1000;
private int mMovieResourceId;
private Movie mMovie;
private long mMovieStart = 0;
private int mCurrentAnimationTime = 0;
@SuppressLint("NewApi")
public PlayGifView(Context context, AttributeSet attrs) {
super(context, attrs);
/**
* Starting from HONEYCOMB have to turn off HardWare acceleration to draw
* Movie on Canvas.
*/
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
}
// herei
protected void onDraw(Canvas canvas) {
if (mMovie != null){
updateAnimtionTime();
drawGif(canvas);
invalidate();
}else{
drawGif(canvas);
}
}
private void updateAnimtionTime() {
long now = android.os.SystemClock.uptimeMillis();
if (mMovieStart == 0) {
mMovieStart = now;
}
int dur = mMovie.duration();
if (dur == 0) {
dur = DEFAULT_MOVIEW_DURATION;
}
mCurrentAnimationTime = (int) ((now - mMovieStart) % dur);
}
private void drawGif(Canvas canvas) {
mMovie.setTime(mCurrentAnimationTime);
mMovie.draw(canvas, 0, 0);
canvas.restore();
}
}
당신은 또한 GIF를로드하는 웹보기를 사용할 수
중복 가능성 : http://stackoverflow.com/questions/20416383/how-to-play-gif-in-android – Nirel