如何在网络视图中截取地图的屏幕截图
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);
我从 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);