package com.mingle.myapplication;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Movie;
import android.os.SystemClock;
import android.util.AttributeSet;
import android.view.View;
import java.io.InputStream;
/**
* Created by multimedia on 2016-05-11.
*/
public class GifMain extends View {
private InputStream gifInputStream;
private Movie gifmovie;
private int movieWidth,movieHeight;
private long movieDuration;
private long movieStart;
public GifMain(Context context) {
super(context);
init(context);
}
public GifMain(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
public GifMain(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context);
}
private void init(Context context){
setFocusable(true);
gifInputStream=context.getResources().openRawResource(R.drawable.cock);
gifmovie=Movie.decodeStream(gifInputStream);
movieWidth=gifmovie.width();
movieHeight=gifmovie.height();
movieDuration=gifmovie.duration();
}
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
setMeasuredDimension(movieWidth,movieHeight);
}
public int getMovieWidth(){
return movieWidth;
}
public int getMovieHeight(){
return movieHeight;
}
public long getMovieDuration(){
return movieDuration;
}
protected void onDraw(Canvas canvas){
long now= SystemClock.uptimeMillis();
if(movieStart == 0){
movieStart=now;
}
if(gifmovie!= null){
int dur=gifmovie.duration();
if(dur ==0){
dur= 8000;
}
int realTime=(int)((now-movieStart) %dur);
gifmovie.setTime(realTime);
gifmovie.draw(canvas,0,0);
invalidate();
}
}
}