指南针显示监听器存在吗?(Google Map Android API V2)



当我旋转地图时,指南针出现了。然而,我的一个按钮与指南针重叠……我想知道是否有一种方法可以检测到它,这样我就可以在指南针显示时隐藏我的按钮。提前感谢!

编辑:我之前的问题是误导,对不起,我实际上希望按钮在用户实际旋转/倾斜地图时消失,一旦用户的手离开屏幕,它应该重新出现。

@MaciejGórski使用CameraPosition.bearing != 0 || CameraPosition.tilt != 0的建议对我来说是一个很大的一步,我尝试了以下实现,但后来我意识到OnCameraChangeListener不会在用户开始旋转/倾斜地图时立即启动,所以它不会像预期的那样工作。

public OnCameraChangeListener getCameraChangeListener() {
    return new OnCameraChangeListener() {
        @Override
        public void onCameraChange(CameraPosition position) {

            // when compass show hide option button
            if (optionButton.getVisibility() == LinearLayout.VISIBLE
                    && (position.bearing != 0 || position.tilt != 0)) {
                optionButton.setVisibility(LinearLayout.GONE);
                final Handler handler = new Handler();
                handler.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                //wait 1 sec and show the button again
                            optionButton.setVisibility(LinearLayout.VISIBLE);
                    }
                }, 1000);
            }
        }
    };
}

您可以通过检查OnCameraChangeListener中的CameraPosition.bearing != 0 || CameraPosition.tilt != 0来轻松检测指南针何时出现

我认为这个选项不存在,您最好重新定位您的按钮或删除地图的指南针小部件:

 myMap.getUiSettings().setCompassEnabled(false);

最新更新