旋转地图时,会出现指南针。然而,我的一个按钮与指南针重叠...我想知道是否有一种方法可以检测到它,所以当指南针显示时我可以隐藏我的按钮。提前谢谢!
编辑: 我的问题在前面误导了对不起,我实际上希望当用户实际旋转/倾斜地图时按钮消失,一旦用户的手离开屏幕,它就会重新出现。
@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);
}
}
};
}
答案 0 :(得分:1)
通过查看CameraPosition.bearing != 0 || CameraPosition.tilt != 0
中的OnCameraChangeListener
,您可以轻松检测罗盘何时显示。
答案 1 :(得分:0)
我不认为这个选项存在,你可以更好地重新定位你的按钮或用这一行删除地图的罗盘小部件:
myMap.getUiSettings().setCompassEnabled(false);