我有这个问题。我有一个MapView,在我的活动中我设置了标志来显示缩放控件,它可以工作。但随后用户导航到另一个活动,返回到地图,缩放控件已经消失。
是否有一种简单的方法可以确保始终存在缩放控件,或者我是否需要在顶部自行滚动?理想情况下,我想在MapView的子类中设置缩放控件以保持简单。我怀疑它失败了,因为变焦控制是在错误的时间设置的,但是什么时候是正确的时间?
答案 0 :(得分:3)
这是我的工作。首先使用MapView将ZoomControl视图添加到文件中(我使用RelativeLayout来保存MapView和ZoomControls)
<?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" >
<MapView
android:id="@+id/map"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:apiKey="X"
android:clickable="true" />
<ZoomControls
android:id="@+id/zoomcontrols"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true" />
</RelativeLayout>
现在在onCreate方法中执行类似
的操作 mapView.setBuiltInZoomControls(false);
ZoomControls zoomControls = (ZoomControls) findViewById(R.id.zoomcontrols);
zoomControls.setOnZoomInClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mapController.zoomIn();
}
});
zoomControls.setOnZoomOutClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mapController.zoomOut();
}
});
答案 1 :(得分:0)
你可以很容易地做到。
在onCreate()
方法上执行:
MapView mapView = (MapView) findViewById(R.id.map_view_id);
mapView.setBuiltInZoomControls(true);
这样,缩放按钮就会出现在屏幕的底部。如果现在触摸事件发生一小段时间,它们就会消失,如果发生任何触摸事件,它们会再次自动出现。