21.04.2014 Views

Curso-Android-Desarrollo-de-Aplicaciones-Móviles

Curso-Android-Desarrollo-de-Aplicaciones-Móviles

Curso-Android-Desarrollo-de-Aplicaciones-Móviles

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CURSO ANDROID<br />

68<br />

represente este Overlay mostrando la imagen seleccionada. Para este ejemplo se utilizará la imagen <strong>de</strong>l<br />

ícono, al <strong>de</strong>finirla <strong>de</strong>ntro <strong>de</strong> la misma clase <strong>de</strong> la Activity principal entonces será una clase privada.<br />

class MyOverlay extends Overlay { }<br />

Tendremos una variable <strong>de</strong> instancia representando el punto don<strong>de</strong> se colocará el marcador y será un<br />

parámetro recibido por el constructor:<br />

GeoPoint point;<br />

/* El constructor recibe el punto don<strong>de</strong> se dibujará el marker */<br />

public MyOverlay(GeoPoint point) {<br />

super();<br />

this.point = point;<br />

}<br />

Sobrecargaremos el método draw para dibujar nuestro marker:<br />

@Overri<strong>de</strong><br />

public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when)<br />

{<br />

super.draw(canvas, mapView, shadow);<br />

//se traduce el punto geo localizado a un punto en la pantalla<br />

Point scrnPoint = new Point();<br />

mapView.getProjection().toPixels(this.point, scrnPoint);<br />

//se construye un bitmap a partir <strong>de</strong> la imagen<br />

Bitmap marker = BitmapFactory.<strong>de</strong>co<strong>de</strong>Resource(getResources(), R.drawable.icon);<br />

//se dibuja la imagen <strong>de</strong>l marker<br />

canvas.drawBitmap(marker, scrnPoint.x - image.getWidth() / 2, scrnPoint.y -<br />

marker.getHeight() / 2, null);<br />

return true;<br />

}<br />

El código completo <strong>de</strong> la clase para los overlays es el siguiente:<br />

class MyOverlay extends Overlay {

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!