我制作了用于放大和缩小的自定义按钮。这是按钮的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官方文档明确指出,使用这两个功能中的任何一个都应该放大/缩小谷歌地图。它并没有说它应该做任何其他工作。我错过了什么吗?
答案 0 :(得分:1)
刚刚找到解决方案!这就是我做到的:
case R.id.zoomButton:
mMap.animateCamera(CameraUpdateFactory.zoomIn());
break;
case R.id.unzoomButton:
mMap.animateCamera(CameraUpdateFactory.zoomOut());
break;