zoukankan      html  css  js  c++  java
  • android Gif播放

    public class GifSurface extends SurfaceView implements Callback{
    
        private Movie movie;
        private static int ZOOM = 2;
        public String path;
        
        private Handler handler = new Handler();
        private Runnable runnable = new Runnable() {
            
            @Override
            public void run() {
                Canvas canvas = holder.lockCanvas();
                canvas.save();
                canvas.scale(ZOOM, ZOOM);
                movie.draw(canvas, 0, 0);
                canvas.restore();
                
                holder.unlockCanvasAndPost(canvas);
                movie.setTime((int) (System.currentTimeMillis()%movie.duration()));
                handler.removeCallbacks(runnable);
                handler.postDelayed(runnable, 30);
            }
        };
    
        private SurfaceHolder holder;    
        public GifSurface(Context context, AttributeSet attrs) {
            super(context, attrs);
            
            holder = getHolder();
            holder.addCallback(this);
        }
        
        @Override
        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
            try {
                InputStream is = getContext().getAssets().open("122856549320150205220255.gif");
                movie = Movie.decodeStream(is);
                
                int width = movie.width();
                int height = movie.height();
                setMeasuredDimension(width*ZOOM, height*ZOOM);
                handler.post(runnable);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        @Override
        public void surfaceCreated(SurfaceHolder holder) {
        
            
        }
    
        @Override
        public void surfaceChanged(SurfaceHolder holder, int format, int width,
                int height) {
            
        }
    
        @Override
        public void surfaceDestroyed(SurfaceHolder holder) {
            handler.removeCallbacks(runnable);
        }
    
        private void setZoom(int zoom) {
            this.ZOOM = zoom;
    
        }
        
        public void setPath(String path) {
            this.path = path;
        }
    }
  • 相关阅读:
    195
    194
    193
    192
    191
    190
    Oracle 11g使用rman从单实例迁移到RAC
    RESTful API 设计指南
    Oracle GoldenGate(OGG)- 超级详细
    【转】Oracle GoldenGate OGG管理员手册
  • 原文地址:https://www.cnblogs.com/wei1228565493/p/4888523.html
Copyright © 2011-2022 走看看