你的位置:首页 > 操作系统

[操作系统]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("保存成功");    }  }