2011-02-16 14 views
9

Sono un nuovo sviluppatore per Android. Ho cercato di ruotare MapView in movimento circolare. Ma non so come iniziare.Come ruotare MapView?

Avete un semplice codice per ruotare lo MapView?

risposta

11

Ho fatto questo in passato e richiede di creare un ViewGroup personalizzato che ruota la tela nel metodo dispatchDraw(). È inoltre necessario aumentare la dimensione di MapView (in modo che disegni un numero sufficiente di pixel quando ruotato). Sarà inoltre necessario ruotare gli eventi di tocco in dispatchTouchEvent(). Oppure se usi Android 3.0 puoi semplicemente chiamare theMapView.rotate() :)

+0

Questo è fantastico. Grazie. – Ferdinand

+0

Abbiamo solo Honeycomb Preview, che non include MapView. C'è un modo per ottenere l'API di Maps per Android 3.0? Documentazione? Nulla? Carino per favore? –

+0

@Romain Guy: Non ho il metodo rotate(). –

1

In generale, puoi sempre creare uno Affine Transform con la rotazione angolata di cui hai bisogno. Nel caso generale, si esegue una moltiplicazione matrice di questa forma:

|x'| |cosθ -sinθ 0| |x| 
|y'| = |sinθ cosθ 0|*|y| 
|1 | |0  0  1| |1| 

Dove (x, y) sono le coordinate iniziali, θ è l'angolo di rotazione, e (x 'y') sono la risultante trasformazione.

+0

Un'altra domanda su come utilizzare Affine Transform in Android: http://stackoverflow.com/questions/3534642/how-to-map-javas-affinetransform-to-androids-matrix – Macarse