1

我根据这个例子开发了一个指南针:http: //developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Compass.html

由于我的应用程序仅在横向模式下运行,因此指南针也是如此。但是,似乎此代码在横向模式下无法正常运行。北点更偏向东。如果我运行 Android 示例代码,我会遇到同样的问题。

有没有其他人注意到这一点,甚至更好的是有人有解决方案吗?

顺便说一句,我正在 Nexus One 上对此进行测试。不确定这是否与手机有关。

最好的祝福

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 回答