Google地图不会使用自定义按钮放大和缩小

时间:2013-11-11 17:08:09

标签: android xml eclipse google-maps google-maps-android-api-2

我制作了用于放大和缩小的自定义按钮。这是按钮的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官方文档明确指出,使用这两个功能中的任何一个都应该放大/缩小谷歌地图。它并没有说它应该做任何其他工作。我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

刚刚找到解决方案!这就是我做到的:

case R.id.zoomButton:
        mMap.animateCamera(CameraUpdateFactory.zoomIn());
        break;
case R.id.unzoomButton:
        mMap.animateCamera(CameraUpdateFactory.zoomOut());
        break;