Мы создаем приложение, которое использует API карт Google для андроида.
У меня есть свой MapController и MapView, и я включаю встроенное использование средств управления масштабированием:
mapView.setBuiltInZoomControls(true);
Я теперь хотел бы получить событие, когда пользователь на самом деле масштабирует на карте, как я иду об этом? Я не могу найти такое событие или любое общее событие, где я мог обнаружить изменение на уровне масштабирования.
Обновление
mapView.getZoomControls () удерживается от использования. И документация предлагает использовать mapView.setBuiltInZoomControls (bool) вместо этого. Это хорошо, но я просто не могу выяснить, как действовать на события от созданного в средствах управления масштабированием.
Как сказано в операционной системе, используйте onUserInteractionEvent и сделайте тест самостоятельно.
API android предлагает использовать ZoomControls, который имеет setOnZoomInClickListener()
Для добавления этих элементов управления масштабированием вы бы:
ZoomControls mZoom = (ZoomControls) mapView.getZoomControls();
А затем добавили бы mZoom в макет.
Вы можете использовать
ZoomButtonsController zoomButton = mapView.getZoomButtonsController();
zoomButton.setOnZoomListener(listener);
, надеюсь, это поможет
U может иметь Zoom CControl следующим образом.
Здесь я прикрепляю код, как реализовать управление масштабированием.
1>> XML-файл должен быть таким.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.google.android.maps.MapView
android:id="@+id/mapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:enabled="true"
android:clickable="true"
android:apiKey="0l4sCTTyRmXTNo7k8DREHvEaLar2UmHGwnhZVHQ"
/>
<LinearLayout android:id="@+id/zoom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
/>
</RelativeLayout>
2>> При выполнении основного действия внутри метода oncreate выполните следующие действия. здесь вы расширяете свое представление с помощью mapView
mapView = (MapView) findViewById(R.id.mapView);
LinearLayout zoomLayout = (LinearLayout)findViewById(R.id.zoom);
View zoomView = mapView.getZoomControls();
zoomLayout.addView(zoomView,
new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
mapView.displayZoomControls(true);
....................................... .................... Вот как вы можете использовать встроенный элемент управления масштабированием API..
У вас может быть свой собственный код для реализации увеличения и уменьшения масштаба, как это...
public boolean onKeyDown(int keyCode, KeyEvent event)
{
MapController mc = mapView.getController();
switch (keyCode)
{
case KeyEvent.KEYCODE_3:
mc.zoomIn();
break;
case KeyEvent.KEYCODE_1:
mc.zoomOut();
break;
}
return super.onKeyDown(keyCode, event);
}
.. Вот как я реализовал...
Спасибо..Ракеш