Estoy tratando de mostrar un ícono de un hombre con un círculo debajo de sus pies en el centro de MapView. Aquí está mi código de superposición:¿Por qué la sombra de mi superposición MapView está en el lugar incorrecto?
public class CenterOverlay extends Overlay
{
private Drawable d;
public CenterOverlay(Drawable drawable)
{
final int w = drawable.getIntrinsicWidth();
final int h = drawable.getIntrinsicHeight();
drawable.setBounds(0, 0, w, h);
this.d = drawable;
}
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow)
{
final int mapCenterX = mapView.getWidth()/2;
final int mapCenterY = mapView.getHeight()/2;
final int x = mapCenterX - d.getIntrinsicWidth()/2;
final int y = mapCenterY - d.getIntrinsicHeight();
drawAt(canvas, d, x, y, shadow);
}
}
el código para agregar la superposición al MapView está funcionando bien (puedo ver el icono de la derecha, donde se supone que debe ser). El problema es que la sombra generada automáticamente está en el lugar equivocado (alrededor del ancho del icono a la izquierda, y aproximadamente a la mitad del ícono).
Gracias de antemano por su ayuda!
Siento haber tardado tanto en responder, se fue de vacaciones. De todos modos, esto funciona, aunque yo mismo lo resolví convirtiéndolo en ItemizedOverlay.boundCenterBottom(), registrando los valores que estableció, volviendo a mi Superposición e ingresando esos valores. : P No entendía bien cómo funcionaba el cuadro delimitador. –