3

当我绘制一个包含透明区域的视图时,由于其背景图像,当视图被绘制到画布时,这些透明区域变为黑色:

View v = getView();
v.measure(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
v.layout(0, 0, infoWindow.getMeasuredWidth(), infoWindow.getMeasuredWidth());
Bitmap b = Bitmap.createBitmap(v.getMeasuredWidth(), v.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
//c.drawColor(Color.YELLOW); // yellow color does not show up
v.draw(c);

由于代码片段中的黄色背景没有出现在位图中,我得出的结论是v.draw(c)不使用透明度进行绘制。如果我将 Drawable 绘制到画布上,则它的透明区域会正确绘制。

由于视图是从布局文件中扩展而来的,我可以观察到在操作中使用相同的布局时,Android 会正确呈现相同的布局。那么如何在保持透明区域的同时将视图绘制到画布上呢?

4

1 回答 1

2

呼叫v.setDrawingCacheEnabled(true)v.getDrawingCache()。第二个会给你一个Bitmap你可以画的。

于 2013-03-12T19:56:41.273 回答