如何在网络视图中截取地图的屏幕截图

How to take screen-shots of map in web view

我从 view 视图中获取了地图的屏幕截图,地图显示正确,但 标记未在屏幕截图中显示

RelativeLayout rlShare; 
rlShare.setDrawingCacheEnabled(true);
rlShare.buildDrawingCache(true);
Bitmap b = rlShare.getDrawingCache();

您可以使用此代码,它会截取视图的屏幕截图

  public Bitmap screenShot(View view) {
        Bitmap bitmap = Bitmap.createBitmap(view.getWidth(),
                view.getHeight(), Config.ARGB_8888);
        Canvas canvas = new Canvas(bitmap);
        view.draw(canvas);
        return bitmap;
    }

发生这种情况是因为您的 WebView 正在硬件加速并且正在硬件级别绘制标记。

您可以使用 View.LAYER_TYPE_SOFTWARE:

指定视图具有软件层
yourWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);