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("保存成功");
        }
    }
时间: 2024-11-10 06:36:18

andriod arcgis保存Mapview为图片的相关文章

【VC++技术杂谈006】截取电脑桌面并将其保存为bmp图片

本文主要介绍如何截取电脑桌面并将其保存为bmp图片. 1. Bmp图像文件组成 Bmp是Windows操作系统中的标准图像文件格式. Bmp图像文件由四部分组成: (1)位图头文件数据结构,包含Bmp图像文件的类型.文件大小等信息. (2)位图信息数据结构,包含Bmp图像的宽.高.压缩类型等信息. (3)颜色表,该部分可选,有些位图需要,有些位图(如24位真彩色位图)不需要. (4)位图数据. 1.1位图头文件数据结构 位图头文件数据结构包含Bmp图像文件的类型.文件大小等信息,占用14个字节.

PHP《将画布(canvas)图像保存成本地图片的方法》

用PHP将网页上的Canvas图像保存到服务器上的方法 2014年6月27日 歪脖骇客 发表回复 8 在几年前HTML5还没有流行的时候,我们的项目经理曾经向我提出这样一个需求:让项目评审专家们在评审结束时用笔在平板电脑上进行电子签名. 这需要我们评审软件里提供这样一个功能:打开浏览器,登录,进入评审意见页,页面最下部有个方块区域,用户在这里用触摸笔进行签名,然后这个签名将会保持 的服务器上. 这样的一个需求在当时是让我大费周折,但如今想起来,如果用html5的canvas实现,真是太简单了.在

Word中截取部分内容并保存为jpg图片的方法

private void button1_Click(object sender, EventArgs e) { var appWord = new Microsoft.Office.Interop.Word.Application(); var doc = new Microsoft.Office.Interop.Word.Document(); object oMissing = System.Reflection.Missing.Value;//这个是什么东西,我始终没搞明白-_- //打

用PHP和MySQL保存和输出图片

mysql可以直接保存二进制的数据,数据类型是blob.   通常在数据库中所使用的文本或整数类型的字段和需要用来保存图片的字段的不同之    处就在于两者所需要保存的数据量不同.MySQL数据库使用专门的字段来保存大容量的数据,数据    类型为BLOB.        MySQL数据库为BLOB做出的定义如下:BLOB数据类型是一种大型的二进制对象,可以保存可    变数量的数据.BLOB具有四种类型,分别是TINYBLOB,BLOB,  MEDIUMBLOB  和LONGBLOB,区别在于

[ActionScript 3.0] 通过BitmapData将对象保存成jpg图片

此方法需要用到JPGEncoder.as和BitString.as这两个类,是将BitmapData对象转换成ByteArray,然后通过FileStream把此ByteArray写入到文件保存成jpg图片,因为用到File相关类,故需要用air播放器发布flash,在此提供两个下载JPGEncoder.as和BitString.as类的地址, CSDN:http://download.csdn.net/source/3205224 Adobe官方的CoreLib下载: http://code.

C# 保存窗体为图片(保存纵断面图)

源码如下: #region 保存纵断面截图 private void button_save_Click(object sender , EventArgs e) { SaveFileDialog saveImageDialog = new SaveFileDialog(); saveImageDialog.Title = "保存纵断面图"; saveImageDialog.DefaultExt = ".png"; saveImageDialog.FileName

读取保存文件、图片在数据库中的上传读取

一.输入输出流 1.概念: 输入输出流主要用于保存.读取文件,其内容保存在内存中. 2.使用方法: using System.IO; //System.IO 命名空间包含允许读写文件和数据流的类型以及提供基本文件和目录支持的类型. 3.代码段实现读取和保存功能: 读取文字: OpenFileDialog op = new OpenFileDialog(); op.ShowDialog();//打开文件对话框 //将选择的东西读取到文档里 StreamReader sd = new StreamR

关于数据库保存的二进制图片无法在colorbox插件中显示的解决办法

colorbox是非常优秀的图片显示插件,但最近想用它来显示保存在数据库中的二进制图片却发现问题,就是无法正确显示,显示出来的都是一些乱码字符,究竟问题出在那呢? 于是循例百度了一下,是有人也碰到这个问题,但没有提出解决方案呀!看来只能自己分析原因了... 首先说下我的开发环境:ASP.NET MVC+COLORBOX,那问题不是出在MVC就是COLORBOX上了. 1.MVC分析: 无论图片保存数据库还是保存在目录文件,都是无非转换为二进制流返回比浏览器,于是我试下用COLORBOX显示保存在

保存画面为图片 当前MFC保存该程序为图片 c++ vc

将屏幕保存为图片.使用vs2008编译通过. [cpp] view plaincopy #include "stdafx.h" #include <windows.h> #include <atlimage.h> int __stdcall WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { HWND hwnd = ::GetDesktop