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("保存成功");
        }
    }

 

你可能感兴趣的:(andriod arcgis保存Mapview为图片)