0

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

编辑:我的问题早些时候误导了抱歉,我实际上希望按钮在用户实际旋转/倾斜地图时消失,并且一旦用户的手离开屏幕,它应该重新出现。

@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);
            }

        }
    };
}
4

2 回答 2

1

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

于 2013-06-03T09:36:30.613 回答
0

我认为此选项不存在,您最好使用以下行重新定位按钮或删除地图的指南针小部件:

 myMap.getUiSettings().setCompassEnabled(false);
于 2013-06-03T08:22:29.977 回答