我需要将RelativeLayout
转换为位图,以便将其作为Marker
GoogleMaps
。
我尝试了许多方法,这些方法已在SO中得到解答,
像这样:Convert view to bitmap on Android和其他人,但我总是得到正确大小的黑色视图。
我尝试在仅包含ImageView
setImageBitmap(bitmap);
的活动的示例中使用它
// Convert a view to bitmap
public static Bitmap CreateDrawableFromView(Context context, View view)
{
var markerDiameter = context.Resources.GetDimension(Resource.Dimension.map_marker_diameter);
view.LayoutParameters = new RelativeLayout.LayoutParams((int)markerDiameter, (int)markerDiameter);
view.Measure(view.LayoutParameters.Width, view.LayoutParameters.Height);
view.Layout(0, 0, view.MeasuredWidth, view.MeasuredHeight);
Bitmap bitmap = Bitmap.CreateBitmap(view.MeasuredWidth, view.MeasuredHeight, Bitmap.Config.Argb8888);
Canvas canvas = new Canvas(bitmap);
view.Draw(canvas);
return bitmap;
}
我不确定我做错了什么。有什么建议吗?
编辑:问题出在我自己的布局中,而不是在代码中将其转换为Bitmap
。