Después de mirar un poco, se me ocurrió la siguiente respuesta (utilicé code from this blog para hacer el cambio de tamaño).
I pesaban más que las mismo método utilizado anteriormente, con algunas diferencias:
- En lugar del método drawCircle utilicé el método drawBitmap
- yo no usar el objeto Paint
- pedaleé sobre el artículos de superposición de redimensionar los marcadores
Se termina así:
for(OverlayItem currentPoint:mOverlays){
geopoint =currentPoint.getPoint();
Point point = new Point();
projection.toPixels(geopoint, point);
BitmapDrawable bitDraw= ((BitmapDrawable)currentPoint.getMarker(0));
Drawable currentMarker = currentPoint.getMarker(0);
/*if (currentMarker!=null){
if (currentWidthRatio<.6f) {
currentWidthRatio = .6f;
}
else if (currentWidthRatio>1.5f) {
currentWidthRatio = 1.5f;
}
}*/
if (bitDraw!=null){
Bitmap bitmap = getResizedBitmap(bitDraw.getBitmap(),(int)(currentMarker.getIntrinsicHeight() * currentWidthRatio),
(int)(currentMarker.getIntrinsicWidth()*currentWidthRatio));
canvas.drawBitmap(bitmap,
point.x - bitmap.getHeight()/2,
point.y - bitmap.getWidth()/2, null);
}else{
Log.println(Log.DEBUG,"non-existent point", "");
}
}
¡Cuidado! El método actualPoint.getMarker (0) obtiene, como su nombre implica, los datos del marcador actual. Eso significa que tiene su tamaño original, no la forma en que ha crecido (o encogido) desde entonces. Usted tiene que tener algún método para:
- tienda el tamaño original del mapa
- verificar cómo ha cambiado desde (relación)
El código lo comenté a cabo maneja el máximo y el mínimo cambio de tamaño Quiero permitir (para que los marcadores se puedan ver sin superponer/permanezcan legibles para el ojo humano).
Espero que esto ayude!
Estoy agregando marcadores dibujables al mapa, ¿cómo puedo cambiar el tamaño según el nivel de zoom? – Mani