zoukankan      html  css  js  c++  java
  • andriod arcgis保存Mapview为图片

     /**
         * 把一个View的对象转换成bitmap
         */
        private Bitmap getViewBitmap(MapView v) {
    
            v.clearFocus();
            v.setPressed(false);
    
    
            //能画缓存就返回false
            boolean willNotCache = v.willNotCacheDrawing();
            v.setWillNotCacheDrawing(false);
            int color = v.getDrawingCacheBackgroundColor();
            v.setDrawingCacheBackgroundColor(0);
            if (color != 0) {
                v.destroyDrawingCache();
            }
            v.buildDrawingCache();
            Bitmap cacheBitmap = null;
            while(cacheBitmap == null){
                cacheBitmap = v.getDrawingMapCache(0, 0, v.getWidth(), v.getHeight());
            }
            Bitmap bitmap = Bitmap.createBitmap(cacheBitmap);
            // Restore the view
            v.destroyDrawingCache();
            v.setWillNotCacheDrawing(willNotCache);
            v.setDrawingCacheBackgroundColor(color);
            return bitmap;
        }
        public void saveMyBitmap(String bitName,Bitmap mBitmap){
            String FileName=this.getInnerSDCardPath() + "/" + bitName + ".png";
            ShowMessage(FileName);
            File f = new File(FileName);
            try {
                f.createNewFile();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                Log.e("在保存"+FileName+"图片时出错:" + e.toString(),"在保存"+FileName+"图片时出错:" + e.toString());
            }
            FileOutputStream fOut = null;
            try {
                fOut = new FileOutputStream(f);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
            mBitmap.compress(Bitmap.CompressFormat.PNG, 100, fOut);
            try {
                fOut.flush();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                fOut.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        //缩小
        private class ButtonNexitClickListener implements View.OnClickListener {
    
            public void onClick(View v) {
                //ShowMessage("ok1");
                Bitmap bitmap=getViewBitmap(mapView);
                //ShowMessage("ok2");
                saveMyBitmap("yl",bitmap);
                //ShowMessage("ok3");
                bitmap.recycle();
                ShowMessage("保存成功");
            }
        }
  • 相关阅读:
    链表
    链式学习法:提升技术深度
    数组
    写点什么
    7 天掌握算法面试必考知识点: 作业安排及如何提交
    创建Mac OS root账户
    正则表达式匹配及替换
    Xcode 10 之New Build System & Legacy Build System 旧版构建系统
    性能指标:TPS、QPS、RT、吞吐量
    Objective-C和Swift语言特性
  • 原文地址:https://www.cnblogs.com/gisoracle/p/5250043.html
Copyright © 2011-2022 走看看