私は適切に動作し、セットアップされている MapView を持っています。描画されているオーバーレイ アイテムは (単にドローアブルとして参照されている場合) 正常に動作します。ただし、各ドローアブル アイテムには数値を含める必要があります (たとえば、オーバーレイ アイテム 1 には #1 を表示する必要があります)。レイアウト スタイル R.layout.map_bubble_standard を作成しました。そのビューをビットマップに変換し、そのビットマップをドローアブルに変換してマップに表示しようとしています。ただし、マップをロードしても何も表示されません。これが私がやっていることです...
LayoutInflater inflater = (LayoutInflater) _context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
LinearLayout bubbleView = (LinearLayout)inflater.inflate(R.layout.map_bubble_standard, null);
bubbleView.setDrawingCacheEnabled(true);
bubbleView.buildDrawingCache();
//drawable = _context.getResources().getDrawable(R.drawable.map_pin_48);
drawable = new BitmapDrawable(_context.getResources(), bubbleView.getDrawingCache());
bubbleView.setDrawingCacheEnabled(false);
OverlayItem oi = _overlays.get(whichOne);
oi.setMarker(boundCenterBottom(drawable));
私のコードはメソッドを正常に完了しますが、マップには何も描画されません。私が間違っていることを誰かが判断するのを助けることができますか?
[編集] - 解決済み
これを修正するためのアドバイスを提供する、見つけた別のリンクを使用しました: ここ
うまくいけば、これは将来も他の誰かを助けることができます. 参考までに、ビューのインフレータとインフレータ オブジェクト自体も、アイテム化されたオーバーレイ クラスのデフォルト コンストラクタに移動しました。
_bubbleLayout.setDrawingCacheEnabled(true);
_bubbleLayout.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
_bubbleLayout.layout(0, 0, _bubbleLayout.getMeasuredWidth(), _bubbleLayout.getMeasuredHeight());
_bubbleLayout.buildDrawingCache(true);
Bitmap b = Bitmap.createBitmap(_bubbleLayout.getDrawingCache());
_bubbleLayout.setDrawingCacheEnabled(false); // clear drawing cache
//drawable = _context.getResources().getDrawable(R.drawable.map_pin_48);
drawable = (Drawable) new BitmapDrawable(_context.getResources(),b);
OverlayItem oi = _overlays.get(whichOne);
oi.setMarker(boundCenterBottom(drawable));