2010-10-27 5 views
13

Ich muss integrierte Zoomsteuerelemente von MapView in eine andere Position als die Standardposition einfügen. Während die Methode getZoomControls() einfach zu verwenden ist, ist diese Methode in den letzten API-Versionen veraltet.Wie wird die integrierte Zoomsteuerung in MapView neu positioniert?

Hat jemand Idee, wie man dies ohne aufrufen getZoomControls() tun?

+0

@Keyser nein deine Link Antworten nicht helfen. Infact 'getZoomControls' ist * veraltet *, daher ist diese Frage sehr gültig. – taxeeta

Antwort

10

Ich habe eine Antwort darauf. Ich habe es geschafft, es mit diesem Code in der unteren linken Ecke statt in der Mitte zu positionieren

FrameLayout.LayoutParams zoomParams = new FrameLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); 
ZoomControls controls = (ZoomControls) getZoomButtonsController().getZoomControls(); 
controls.setGravity(Gravity.LEFT); 
controls.setLayoutParams(zoomParams); 
0

Diese Sache funktioniert nicht, wenn Sie Ihre Anrufe korrekt abfolgen. Das hat für mich funktioniert.

map.setBuiltInZoomControls(true); 
    FrameLayout.LayoutParams zoomParams = new FrameLayout.LayoutParams(
      LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); 
    ZoomControls controlls = (ZoomControls) map.getZoomButtonsController().getZoomControls(); 
    controlls.setGravity(Gravity.TOP); 
    controlls.setLayoutParams(zoomParams); 
    map.displayZoomControls(true); 
    map.getController().setZoom(12); 

Upvote für @ludwigm, die einzige Antwort, die für mich funktionierte. Vielen Dank.