我希望通过子类化 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。)