我在这方面遇到了可怕的问题。我有一个 MapView,在我的 Activity 中我设置了标志以显示缩放控件,并且它可以工作。但随后用户导航到另一个 Activity ,回到 map ,缩放控件消失了。

是否有一种简单的方法可以确保缩放控件始终存在,还是我需要在顶部滚动?理想情况下,我想在 MapView 的子类中设置缩放控件以保持简单。我怀疑它失败了,因为在错误的时间设置了缩放控件,但什么时候是正确的时间?

最佳答案

这就是我所做的。首先使用您的 MapView 将 ZoomControl View 添加到文件中(我使用 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();
        }
    });

关于android - 如何确保缩放控件始终显示在 MapView 上?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8066519/

10-10 20:21