snapshot
方法,用于获取GoogleMap
个对象在我们的用户界面中显示的位图表示。
这个方法肯定是必需的:例如,如果我尝试手动创建整个应用程序UI的位图表示,如下所示:
View view = activity.getWindow().getDecorView().getRootView();
Bitmap bitmap = Bitmap.createBitmap(
view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
未捕获地图(bitmap
中的相应像素均为黑色)。
但是,如果我在MapView
布局中包含Activity
,然后使用Stetho在运行时检查视图层次结构,则至少会显示部分MapView
(可能是叠加层)使用“常规”View
的内部层次结构呈现,例如RelativeLayout
,LinearLayout
,ImageView
等:
我的问题是: MapView
有什么不同?为什么绘制到Canvas
根本不捕捉地图的任何部分(甚至不是用于渲染部分地图的“常规”视图)?
作为参考,我上面给出的实现可以成功捕获SurfaceView
内容,以及所有其他“常规”视图。