I want to use my image to replace the Compass image of MyLocationOverlay, how can i implement?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
Subclass MyLocationOverlay, override the method drawCompass(Canvas canvas, float bearing), and draw your own bitmap(s) onto the canvas object:
@Override
protected void drawCompass(Canvas canvas, float bearing) {
Resources res = _context.getResources();
Bitmap myCompassPointer = BitmapFactory.decodeResource(res, R.drawable.compass_pointer);
float rotationAngle = -bearing + 360f;
Matrix rotation = new Matrix();
rotation.preRotate(rotationAngle, myCompassPointer.getWidth()/2.0f, myCompassPointer.getHeight()/2.0f);
canvas.drawBitmap(myCompassPointer, rotation, null);
// don't call super if you don't want the default compass image:
//super.drawCompass(canvas, bearing);
}
回答2:
I think you can only replace the Marker (the blue, pulsating dot) which displays the location, please see a related StackOverflow question. Hope this helps, even if the issue seems a bit old.