我正在尝试使用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();
}
}
};