1

この例に基づいてコンパスを開発しました: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Compass.html

私のアプリは横向きモードでのみ動作するため、コンパスも同様です。ただし、このコードはランドスケープ モードでは正しく機能しないようです。北はより東を指します。Android のサンプル コードを実行すると、同じ問題が発生します。

他の誰かがこれに気づいたことがありますか?さらに良い解決策はありますか?

ちなみに、私はこれを Nexus One でテストしています。これが電話関連の問題かどうかはわかりません。

よろしくお願いします

P

4

1 に答える 1

1

磁力計が電話の上部にあるため、回転から 90 度を差し引く必要があります。

int test = getResources().getConfiguration().orientation;
if(Configuration.ORIENTATION_LANDSCAPE == test) {
            rotation = -90f;
        }
        else {
            rotation = 0f;
        }
canvas.rotate((float) (-Math.toDegrees(mOrientation[0]) + rotation ));
于 2010-11-28T21:24:44.627 に答える