Google map 拖拽选择位置结束的监听(用力拖拽松手后有延迟惯性也适用)

地图应用一般都有  map上面一个大头针,然后拖拽缩放地图  获取到大头针所在的坐标和位置信息。    可惜国内对google map的介绍太少了,我原本是这样做的  , 在

mGoogleMap.setOnCameraMoveListener(this);的回调:
@Override
    public void onCameraMove() {
        centerPoint1 = mGoogleMap.getProjection().fromScreenLocation(getScreenMetrics(MapsActivity.this));
//        Toast.makeText(MapsActivity.this,centerPoint1.latitude+"---"+centerPoint1.longitude,Toast.LENGTH_SHORT).show();
//        mete(centerPoint1);
    }中实时获取位置   然后用
try {

    addresses = geocoder.getFromLocation(centerPoint.latitude, centerPoint.longitude, 1);
}catch (Exception e){

}得到当前位置,不过太卡了,因为稍微移动一点点就执行获取位置的函数了,移动一里面能计算几百次,太卡了,性能差点的手机还会直接卡死崩掉,在网上找手指滑动结束的监听,真的是看了好多也没找到,算了,自己找了,我给google map的所有带有setonXXXXXXListener的方法都设置进去,然后在各自的回调里吐司对应的XXXXXX,还真让我找到了,是它是它就是它——————
mGoogleMap.setOnCameraIdleListener(this);

这个的回调监听

@Override
    public void onCameraIdle() {
//        Toast.makeText(MapsActivity.this,"onCameraIdle",Toast.LENGTH_SHORT).show();
         if(null != centerPoint1){
             mete(centerPoint1);
         }
    }就是监听停止拖动地图后的!

google也真是   我天真的以为监听拖拽地图的函数名字应该是 onDragEnd、onDragfinish之类的,没想到是个这 ,涨姿势了。

顺带多说一句,google map控件已经把onTouchEvent、GestureDetector等屏幕手势操作都拦截了处理了,你在mapActivity中是很难监听到自己写的手势监听事件的。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值