2015-03-02 116 views
1

我需要侦听CameraPosition修改来绘制自定义指南针。问题是:GoogleMap.OnCameraChangeListener onCameraChangeGoogleMap.OnCameraChangeListener onCameraChange延迟工作

  • 此监听器可能不会通知中间摄像头位置。
  • 它随机延迟触发(不明白为什么)

的是,有没有办法听CameraPosition轴承的变化? (在ios f.e中有可能实现使用键值观测),反射...? 谢谢。

回答

1

把上面的FrameLayout地图和抓亮点:

@Override 
    public boolean onInterceptTouchEvent(MotionEvent ev) { 
     if (mCatchTouchFrameLayoutListener != null) 
      mCatchTouchFrameLayoutListener.onTouch(ev); 
     return false; 
    } 
0

要使用给定的CameraUpdate即时移动摄像机,您可以拨打GoogleMap.moveCamera(CameraUpdate)

通过对更改进行动画处理,您可以使用户体验更加令人愉快,特别是对于短时间移动。要做到这一点,而不是致电GoogleMap.moveCamera()致电GoogleMap.animateCamera()。地图将顺利移动到新的属性。此方法的最详细形式GoogleMap.animateCamera(cameraUpdate, duration, callback)提供三个参数:

CameraUpdate:描述摄像头移动位置的CameraUpdate。

回调:实现GoogleMap.CancellableCallback的对象。这个处理任务的通用接口定义了两种方法onCancel()onFinished()。对于动画,在以下情况下会调用这些方法: onFinish() 如果动画无中断地完成,则调用此方法。 onCancel() 如果通过调用stopAnimation()或开始新的相机移动来中断动画,则调用此方法。 或者,如果您调用GoogleMap.stopAnimation(),也会发生这种情况。

持续时间:动画所需的持续时间(以毫秒为单位),作为int

+6

这怎么回答这个问题? – shkschneider 2015-03-03 13:39:58