我制作了用于放大和缩小的自定义按钮。这是按钮的 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;
}
}
我什至为这两次点击添加了日志,以确保按钮点击确实有效(并且确实有效),但是当我点击其中任何一个按钮时 map 都没有任何反应。
CameraUpdateFactory.zoomIn() and CameraUpdateFactory.zoomOut() give you a CameraUpdate that changes the zoom level by 1.0, while keeping all other properties the same.
Google Maps API 官方文档明确指出,使用这两个函数中的任何一个都应该放大/缩小 google map 。它并没有说应该做任何其他事情才能让它发挥作用。我错过了什么吗?
最佳答案
刚刚找到解决方案!我是这样做的:
case R.id.zoomButton:
mMap.animateCamera(CameraUpdateFactory.zoomIn());
break;
case R.id.unzoomButton:
mMap.animateCamera(CameraUpdateFactory.zoomOut());
break;
关于android - 谷歌地图没有使用自定义按钮放大和缩小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19911948/