双击 GoogleMaps 活动中的“缩放”
可能的重复:
双击 ->缩放 Android MapView?
我是 Android 开发新手。我正在开发一个使用 GoogleMaps 的应用程序。我必须在 GoogleMaps 中实现双击缩放。当我双击地图时,它应该放大。如果可能的话,请提供示例代码。
我已经编写了以下代码,但我不知道还要添加什么。
public class Maps extends MapActivity implements OnGestureListener, OnDoubleTapListener {
private GestureDetector detector;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// MapViewer mapViewer = new MapViewer(null, null);
MapView mapView = (MapView) findViewById(R.id.mapview);
detector = new GestureDetector(this, this);
mapView.setBuiltInZoomControls(true);
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
public boolean onDoubleTap(MotionEvent e) {
mapView.getController().zoomIn();
return false;
}
public boolean onDoubleTapEvent(MotionEvent e) {
return false;
}
public boolean onSingleTapConfirmed(MotionEvent e) {
return false;
}
public boolean onDown(MotionEvent e) {
return false;
}
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
return false;
}
public void onLongPress(MotionEvent e) {
}
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
return false;
}
public void onShowPress(MotionEvent e) {
}
public boolean onSingleTapUp(MotionEvent e) {
return false;
}
}
Possible Duplicate:
Double Tap -> Zoom on Android MapView?
I am newbie Android developer. I am developing an application in which I am using GoogleMaps. I have to implement double tap zoom in GoogleMaps. When I double click on the map it should zoom in. Kindly if it is possible provide a sample code.
I have written the following code but I dont know what to add more.
public class Maps extends MapActivity implements OnGestureListener, OnDoubleTapListener {
private GestureDetector detector;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// MapViewer mapViewer = new MapViewer(null, null);
MapView mapView = (MapView) findViewById(R.id.mapview);
detector = new GestureDetector(this, this);
mapView.setBuiltInZoomControls(true);
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
public boolean onDoubleTap(MotionEvent e) {
mapView.getController().zoomIn();
return false;
}
public boolean onDoubleTapEvent(MotionEvent e) {
return false;
}
public boolean onSingleTapConfirmed(MotionEvent e) {
return false;
}
public boolean onDown(MotionEvent e) {
return false;
}
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
return false;
}
public void onLongPress(MotionEvent e) {
}
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
return false;
}
public void onShowPress(MotionEvent e) {
}
public boolean onSingleTapUp(MotionEvent e) {
return false;
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
根据此处提供的信息和双击/点击地图缩放 (Android) 我得到的最佳解决方案是:
case MotionEvent.ACTION_UP
是由于 https://developer.android.com/reference/android/view/ViewConfiguration.html#getDoubleTapTimeout() 说getDoubleTapTimeout( )
需要计算。此外,我还更改了缩放功能,因为这是最不跳跃的功能,并且功能与地图应用程序相同。Based on the information provided here and double click/tap map zoom (Android) the best solution I got was:
case MotionEvent.ACTION_UP
was added as a result of how https://developer.android.com/reference/android/view/ViewConfiguration.html#getDoubleTapTimeout() saysgetDoubleTapTimeout()
is to be calculated. Additionally I changed the zoom function as this one is the least jumpy and functions identical to the Maps app.这将模拟放大。在您的 MapOverlay (ItemizedOverlay) 中实现
This will simulate a zoom-in. Implements in your MapOverlay (ItemizedOverlay)
要使其放大到点击的位置,只需添加:
To make it zoom into the tapped location, just add:
我也一直在寻找答案/示例,但找不到有效的代码。
最后,这是对我有用的代码:
MyMapActivity.java
OnDoubleTap.java
main.xml
不要忘记在此处替换
android:apiKey
值与您的apiKey
。I've also been searching for an answer/example, but found nowhere working code.
Finally, here's the code that's working for me:
MyMapActivity.java
OnDoubleTap.java
main.xml
Don't forget to replace here the
android:apiKey
value with yourapiKey
.