【发布时间】:2018-11-22 16:30:21
【问题描述】:
我正在生成视图的位图以将其显示为地图上的标记。它工作正常,但我面临的问题是视图的高度没有显示。
private Bitmap getMarkerBitmapFromView(View view) {
view.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
//view.buildDrawingCache();
view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
Bitmap returnedBitmap = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(),
Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(returnedBitmap);
/*canvas.drawColor(Color.WHITE, PorterDuff.Mode.SRC_IN);
Drawable drawable = view.getBackground();
if (drawable != null)
drawable.draw(canvas);
*/
view.draw(canvas);
return returnedBitmap;
}
【问题讨论】:
-
but the issue that i'm facing is that elevation of the view is not showing.那么如何设置标记视图的高度? -
能否请您提及您的安卓版本。
-
@jiteshmohite 它是 Android 7,0(牛轧糖)。
-
@Ibrahim 我正在为我的视图设置高度,如下所示:android:elevation="3dp"
-
高程图形是在视图周围添加的,并不是严格意义上的一部分。如果要获取立面图,则需要将视图包装在另一个视图中,然后从中生成位图。确保容器视图有足够的填充来正确包含视图的阴影。即使禁用了剪辑,我认为在位图上绘图也不会超出视图的范围。
标签: android bitmap google-maps-markers android-canvas android-elevation