在Widget中以编程方式生成Android谷歌地图快照
我想在我的在Widget中以编程方式生成Android谷歌地图快照,android,google-maps,android-widget,Android,Google Maps,Android Widget,我想在我的小部件中显示地图,我能想到的唯一方法(不必求助于代价高昂的静态API)是创建地图视图并使用快照功能。但现在我不知道如何在AppWidgetProvider中实例化MapView,并以编程方式拍摄快照。当我尝试拍摄快照时,我总是得到一个位图错误,宽度/高度必须大于零 width and height must be > 0 我尝试仅实例化高度和宽度设置为LayoutParams的MapView,尝试添加宽度/高度设置为的父FrameLayout,尝试从XML扩展MapView,但
小部件中显示地图,我能想到的唯一方法(不必求助于代价高昂的静态API)是创建地图视图并使用快照功能。但现在我不知道如何在AppWidgetProvider
中实例化MapView
,并以编程方式拍摄快照。当我尝试拍摄快照时,我总是得到一个位图
错误,宽度/高度必须大于零
width and height must be > 0
我尝试仅实例化高度和宽度设置为LayoutParams
的MapView
,尝试添加宽度/高度设置为的父FrameLayout
,尝试从XML扩展MapView
,但似乎没有任何效果。做这种事的正确方法是什么
val view = MapView(context).apply { layoutParams = ViewGroup.LayoutParams(300, 300) }
//Or like this
val parent = FrameLayout(context).apply { layoutParams = ViewGroup.LayoutParams(300, 300) }
val view = MapView(context).apply { layoutParams = ViewGroup.LayoutParams(300, 300) }
parent.addView(view)
然后,我还会调用这些函数来获取快照:
view.onCreate(bundleOf())
view.onStart()
view.onResume()
view.getMapAsync { map ->
map.snapshot { bitmap ->
}
}