0

地図を回転させるとコンパスが表示されます。ただし、ボタンの 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);
            }

        }
    };
}
4

2 に答える 2