废话不多说了,直接给大家贴代码了,具体代码如下所述:
/*** 把一个View的对象转换成bitmap*/private Bitmap getViewBitmap(MapView v) {v.clearFocus();v.setPressed(false);//能画缓存就返回falseboolean 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 viewv.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 blockLog.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为图片的实例代码,希望对大家有所帮助!
新闻热点
疑难解答