在指南针显示听众存在? (谷歌地图Android API V2)

时间:2013-06-03 03:36:46

标签: android google-maps google-maps-api-2

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

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

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

        }
    };
}

2 个答案:

答案 0 :(得分:1)

通过查看CameraPosition.bearing != 0 || CameraPosition.tilt != 0中的OnCameraChangeListener,您可以轻松检测罗盘何时显示。

答案 1 :(得分:0)

我不认为这个选项存在,你可以更好地重新定位你的按钮或用这一行删除地图的罗盘小部件:

 myMap.getUiSettings().setCompassEnabled(false);