Я хочу нарисовать свое собственное изображение компаса на MapView, создав подкласс MyLocationOverlay. Настраиваемое изображение должно быть больше, чем изображение по умолчанию, отображаемое 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 устанавливали необходимые границы для объекта canvas? Кажется, я получаю границы, применимые к изображениям по умолчанию.
(drawCompass, кажется, вызывается из MyLocationOverlay.draw () - я могу переопределить это, но все еще не уверен, как изменить ClipBounds на объекте canvas.)