2011-02-16 13 views
9

Android için yeni bir geliştiriciyim. Yuvarlak hareket halinde MapView'u döndürmeye çalıştı. Ama nasıl başlayacağımı bilmiyorum.MapView nasıl döndürülür?

MapView'u döndürmek için basit bir kodunuz var mı?

cevap

11

Bunu geçmişte yaptım ve Canvas'ı dispatchDraw() yönteminde döndüren özel bir ViewGroup oluşturması gerekiyor. Ayrıca MapView'in boyutunu artırmanız gerekir (böylece döndürüldüğünde yeterince piksel çizer.) Ayrıca dokunma olaylarını dispatchTouchEvent() içinde döndürmeniz gerekir. Veya Android 3.0 kullanıyorsanız, basit bir şekilde, theMapView.rotate() :)

+0

Bu harika. Adam 'teşekkürler. – Ferdinand

+0

Yalnızca MapView içermeyen Honeycomb Önizlemesini aldık. Android 3.0 için Haritalar API'sini almanın bir yolu var mı? Belgeler? Şey var mı? Oldukça lütfen? –

+0

@ Alanadı Guy: Rotate() yöntemini alamıyorum. –

1

'u çağırabilirsiniz. Genel olarak, ihtiyacınız olan açılı dönüşle bir Affine Transform oluşturabilirsiniz. Elde edilen vardır

(x, y), başlangıçtaki koordinatları, θ için dönme açısı ve
|x'| |cosθ -sinθ 0| |x| 
|y'| = |sinθ cosθ 0|*|y| 
|1 | |0  0  1| |1| 

nerede (x 'y'): Genel durumda, bu formun bir matris çarpımını yapmak dönüşüm.

+0

Android'de Affine Transform'in kullanımıyla ilgili başka bir soru: http://stackoverflow.com/questions/3534642/how-to-map-javas-affinetransform-to-androids-matrix – Macarse