public class SampleView extends View { private Movie mMovie; private Bitmap mBitmap; private Canvas mCanvas; private long mMovieStart;    private  byte[] streamToBytes(InputStream is) {             ByteArrayOutputStream os = new ByteArrayOutputStream(1024);             byte[] buffer = new byte[1024];             int len;             try {                 while ((len = is.read(buffer)) >= 0) {                     os.write(buffer, 0, len);                 }             } catch (java.io.IOException e) {             }             return os.toByteArray();         } public SampleView(Context context) { super(context);    setFocusable(true);    InputStream is;    is = context.getResources().openRawResource(R.drawable.aa_gif);    if (true) {              mMovie = Movie.decodeStream(is);          } else {              byte[] array = streamToBytes(is);              mMovie = Movie.decodeByteArray(array, 0, array.length);          }  int w = mMovie.width();          int h = mMovie.height();          Log.i("-------width-------", w+"");          Log.i("-------height-------", h+"");        // int[] pixels = new int[w*h]; mBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);           mCanvas = new Canvas(mBitmap);             }       @Override     protected void onDraw(Canvas canvas) {         canvas.drawColor(0xFFCCCCCC);                        Paint p = new Paint();         p.setAntiAlias(true);          long now = android.os.SystemClock.uptimeMillis();         if (mMovieStart == 0) {   // first time             mMovieStart = now;         }         if (mMovie != null) {             int dur = mMovie.duration();             if (dur == 0) {                 dur = 1000;             }             int relTime = (int)((now - mMovieStart) % dur);             mMovie.setTime(relTime);             mCanvas.drawColor(0xFFCCCCCC);             mMovie.draw(mCanvas, 0, 0);             Bitmap bitmap = Bitmap.createScaledBitmap(mBitmap, 300, 300, false);               mBitmap.createScaledBitmap(mBitmap, 200, 300, false);             canvas.drawBitmap(bitmap, 100, 200, null);             invalidate();         }     } }public class MainActivity extends Activity {    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        SampleView sampleView = new SampleView(this);        setContentView(sampleView);    }}

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. android 搜索时关键字变色
  2. 在应用程序使用android google搜索功能
  3. 取android:versionCode
  4. Android Wear 进阶 2 Creating Wearable
  5. android中各种适配器之SimpleAdapter使用
  6. Android应用程式编译成系统程序
  7. android junit
  8. Flutter与Android通信 记录
  9. android 仿淘宝的加载刷新效果
  10. android 百度地图 画轨迹