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;
        }
    }
  • 相关阅读:
    素数路径Prime Path POJ3126 素数,BFS
    Fliptile POJ3279 DFS
    Find the Multiple POJ1426
    洗牌Shuffle'm Up POJ3087 模拟
    棋盘问题 POJ1321 DFS
    抓住那只牛!Catch That Cow POJ3278 BFS
    Dungeon Master POJ2251 三维BFS
    Splitting into digits CodeForce#1104A
    Ubuntu下手动安装Nvidia显卡驱动
    最大连续子序列和
  • 原文地址:https://www.cnblogs.com/wei1228565493/p/4888523.html
Copyright © 2011-2022 走看看