谷歌地图快照从Canvas中删除

时间:2015-10-05 13:29:26

标签: java android google-maps

我正在尝试使用Google地图创建我的活动的屏幕截图。将我的Google API从7.xx更新为8.1.0后我的代码停止工作,但我在更改日志中找不到任何相关更改。

这就是:我使用view.getDrawingCache截取我的活动的屏幕截图。然后,我在画布上的正确位置绘制地图的快照。一切正常。当我想在我的快照上绘制“backBitmap”时,它再次从Canvas中删除了快照。

为什么我在调用此行后立即从画布中删除我的地图快照?:

canvas.drawBitmap(backBitmap, 0, 0, null);

整个功能:

GoogleMap.SnapshotReadyCallback callback = new GoogleMap.SnapshotReadyCallback() {
  @Override
  public void onSnapshotReady(Bitmap snapshot) {
    try {
      view.setDrawingCacheEnabled(true);
      Bitmap backBitmap = view.getDrawingCache();
      Bitmap bmOverlay = Bitmap.createBitmap(backBitmap.getWidth(), backBitmap.getHeight() - DpConverter.dpToPx(50), backBitmap.getConfig());
      Canvas canvas = new Canvas(bmOverlay);
      canvas.drawBitmap(snapshot, 0, mapView.getTop() + getStatusBarHeight(view), null);
      canvas.drawBitmap(backBitmap, 0, 0, null);
      FileOutputStream out = new FileOutputStream(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/AppScreenshots/" + name);

      bmOverlay.compress(Bitmap.CompressFormat.PNG, 90, out);
      view.setDrawingCacheEnabled(false);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
};

0 个答案:

没有答案