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()ます。2 つ目は、Bitmap描画できる を提供します。

于 2013-03-12T19:56:41.273 に答える