MyLocationOverlay をサブクラス化して、MapView に独自のコンパス イメージを描画しようとしています。カスタム イメージは、MyLocationOverlay によって表示されるデフォルトのイメージよりも大きくする必要があります。drawCompass をオーバーライドし、独自のドローアブル (ビットマップ) を使用してコンパスを描画します。
@Override
protected void drawCompass(Canvas canvas, float bearing) {
Rect bounds = canvas.getClipBounds();
// usual result: bottom=98, left=10, right=90, top=18
// draw something custom here...
// Don't want default compass image:
//super.drawCompass(canvas, bearing);
}
drawCompass の呼び出しでキャンバス オブジェクトに必要な境界が設定されるように、カスタム画像の境界をどのように設定しますか? 私が取得している境界は、デフォルトの画像に適用できる境界のようです。
(drawCompass は MyLocationOverlay.draw() から呼び出されたようです - それをオーバーライドできますが、キャンバス オブジェクトの ClipBounds を変更する方法がまだわかりません。)