地図を回転させるとコンパスが表示されます。ただし、ボタンの 1 つがコンパスと重なっています...コンパスが表示されているときにボタンを非表示にできるように、それを検出する方法があるかどうか疑問に思っています。前もって感謝します!
編集:私の質問は以前に誤解を招くものでした。申し訳ありませんが、ユーザーが実際にマップを回転/傾斜させているときにボタンを非表示にし、ユーザーの手が画面から離れたら再び表示する必要があります。
@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);
}
}
};
}