当我绘制一个包含透明区域的视图时,由于其背景图像,这些透明区域在将视图绘制到画布时会变为黑色:
由于代码片段中的黄色背景没有在位图中显示出来,我得出结论:
由于视图是从布局文件中膨胀而来,当在操作中使用时,Android可以正确地渲染相同的布局。那么我该如何在保持透明区域的同时将视图绘制到画布上?
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可以正确地渲染相同的布局。那么我该如何在保持透明区域的同时将视图绘制到画布上?
v.setDrawingCacheEnabled(false|true)
并不能解决问题。 - Lars Blumberg