Ancorare l'indicatore sullo schermo o nella posizione iniziale quindi avviare l'animazione.
Annotare il .setAnchor utilizzato in questo metodo è stato aggiunto alla Google Map API v2 maggio 2013
Ho appena ricevuto questa ora lavora per un marcatore modificando i campioni extra mappe demo e I don' mi piace l'esecuzione di questa implementazione. Il pezzo più importante è ancorare il marcatore fuori dallo schermo o disattivarlo nella posizione iniziale. Sto usando fuori dallo schermo sopra.
Anchor il marcatore fuori dallo schermo .setAnchor (.5f, (dimensioni dello schermo sopra marcatore/dimensioni del marcatore)) // per l'Perth Mappa demo è circa 6f per il mio telefono di prova. Cambia l'animazione per rimbalzare sullo stesso valore era 6f per il mio telefono di prova.
private void addMarkersToMap() {
// A few more markers for good measure.
mPerth = mMap.addMarker(new MarkerOptions().position(PERTH)
.title("Perth").snippet("Population: 1,738,800")
.anchor(.5f, 6f)
);
Cambiare l'animazione in modo che rimbalza a (dimensioni dello schermo sopra marcatore/dimensioni del marcatore) (6f sul mio telefono di prova). Sto solo usando il gestore onclick perché è già configurato per rimbalzare con ritocchi di rimbalzo su 6f e una durata maggiore. Quindi, dopo che tutti i marcatori sono stati aggiunti alla mappa, sparo il gestore dei clic.
this.onMarkerClick(mPerth);
Il gestore onMarkerClick cambiato con l'6f e la durata più lunga.
@Override
public boolean onMarkerClick(final Marker marker) {
if (marker.equals(mPerth)) {
// This causes the marker at Perth to bounce into position when it
// is clicked.
final Handler handler = new Handler();
final long start = SystemClock.uptimeMillis();
final long duration = 2500;
final Interpolator interpolator = new BounceInterpolator();
handler.post(new Runnable() {
@Override
public void run() {
long elapsed = SystemClock.uptimeMillis() - start;
float t = Math.max(
1 - interpolator.getInterpolation((float) elapsed
/duration), 0);
marker.setAnchor(0.5f, 1.0f + 6 * t);
if (t > 0.0) {
// Post again 16ms later.
handler.postDelayed(this, 16);
}
}
});
} else if (marker.equals(mAdelaide)) {
// This causes the marker at Adelaide to change color.
marker.setIcon(BitmapDescriptorFactory.defaultMarker(new Random()
.nextFloat() * 360));
}
// We return false to indicate that we have not consumed the event and
// that we wish
// for the default behavior to occur (which is for the camera to move
// such that the
// marker is centered and for the marker's info window to open, if it
// has one).
return false;
}
Good Luck
Usa MapOverlay e il layout della montatura per gonfiare marcatore, quindi ottenere la vostra immagine Vista oggetto quindi iniziare l'animazione su che in mappa attività. – Noby
Penso che questo link risponda alla tua domanda: http: // stackoverflow.it/questions/7407475/can-i-use-animationdrawable-in-an-overlay-on-a-mapview –