背景画像のために透明な領域を含むビューを描画すると、ビューがキャンバスに描画されるとこれらの透明な領域が黒くなります。
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 によって正しくレンダリングされることがわかります。では、透明な領域を維持しながらキャンバスにビューを描画するにはどうすればよいでしょうか?