当我旋转地图时,指南针出现了。然而,我的一个按钮与指南针重叠……我想知道是否有一种方法可以检测到它,这样我就可以在指南针显示时隐藏我的按钮。提前感谢!
编辑:我之前的问题是误导,对不起,我实际上希望按钮在用户实际旋转/倾斜地图时消失,一旦用户的手离开屏幕,它应该重新出现。
@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);