Android APIDemo gif图片显示


Android APIDemo gif图片显示

Android APIDemo gif图片显示
  1. import android.content.Context;  
  2. import android.graphics.Canvas;  
  3. import android.graphics.Movie;  
  4. import android.util.AttributeSet;  
  5. import android.view.View;  
  6.   
  7. public class GifView extends View  
  8. {  
  9.     private Context mContext;  
  10.     private Movie mMovie;  
  11.     private long mMovieStart;  
  12.     private int dur;  
  13.   
  14.     public GifView(Context context)  
  15.     {  
  16.         super(context);  
  17.         mContext = context;  
  18.         initMovie();  
  19.     }  
  20.   
  21.     public GifView(Context context, AttributeSet attrs)  
  22.     {  
  23.         super(context, attrs);  
  24.         mContext = context;  
  25.         initMovie();  
  26.     }  
  27.   
  28.     private void initMovie()  
  29.     {  
  30.         mMovie = Movie.decodeStream(mContext.getResources().openRawResource(  
  31.                 R.drawable.gif1));  
  32.         dur = mMovie.duration();  
  33.         if (dur <= 0)  
  34.         {  
  35.             dur = 1000;  
  36.         }  
  37.     }  
  38.   
  39.     @Override  
  40.     protected void onDraw(Canvas canvas)  
  41.     {  
  42.         if (mMovie != null)  
  43.         {  
  44.             long now = android.os.SystemClock.uptimeMillis();  
  45.             if (mMovieStart == 0)  
  46.             {  
  47.                 mMovieStart = now;  
  48.             }  
  49.             mMovie.setTime((int) ((now - mMovieStart) % dur));  
  50.             mMovie.draw(canvas, 00);  
  51.             invalidate();  
  52.         }  
  53.     }  

相关内容