1

我制作了用于放大和缩小的自定义按钮。这是按钮的 XML:

<ImageButton
    android:id="@+id/unzoomButton"
    android:layout_width="58dp"
    android:layout_height="58dp"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:background="@drawable/unzoom_button"
    android:layout_marginTop="@dimen/standard_margin"
    android:layout_marginBottom="@dimen/standard_margin"
    android:scaleType="fitXY" />

<ImageButton
    android:id="@+id/zoomButton"
    android:layout_width="58dp"
    android:layout_height="58dp"
    android:layout_alignTop="@+id/unzoomButton"
    android:layout_toRightOf="@+id/unzoomButton"
    android:background="@drawable/zoom_button"
    android:scaleType="fitXY" />

添加 ImageButton 监听器:

    imgbtnZoom = (ImageButton) findViewById(R.id.zoomButton);
    imgbtnZoom.setOnClickListener(this);

    imgbtnUnzoom = (ImageButton) findViewById(R.id.unzoomButton);
    imgbtnUnzoom.setOnClickListener(this);

对于 shozuld 处理点击的声明:

@Override
public void onClick(View v) {

    switch (v.getId()) {
    case R.id.button_options:
        Intent i = new Intent();
        i.setClass(this, OptionsActivity.class);
        startActivityForResult(i, OptionsActivity.REQUEST_CODE_OPTIONS_ACTIVITY);
        break;
    case R.id.button_back:
        finish();
        break;
    case R.id.zoomButton:
        CameraUpdateFactory.zoomIn();
        Log.i("TAG", "Zoom in");
        break;
    case R.id.unzoomButton:
        CameraUpdateFactory.zoomOut();
        Log.i("TAG", "Zoom out");
        break;
    }
}

我什至在这两次点击中添加了日志,以确保按钮点击确实有效(确实如此),但是当我点击其中任何一个按钮时,地图没有任何反应。

CameraUpdateFactory.zoomIn() 和 CameraUpdateFactory.zoomOut() 为您提供一个 CameraUpdate,它将缩放级别更改 1.0,同时保持所有其他属性相同。

Google Maps API 官方文档明确指出,使用这两个功能中的任何一个都应该放大/缩小谷歌地图。它并没有说应该做任何其他事情来让它工作。我错过了什么吗?

4

1 回答 1

3

刚刚找到解决办法!这就是我的做法:

case R.id.zoomButton:
        mMap.animateCamera(CameraUpdateFactory.zoomIn());
        break;
case R.id.unzoomButton:
        mMap.animateCamera(CameraUpdateFactory.zoomOut());
        break;
于 2013-11-11T17:15:19.427 回答