我根据这个例子开发了一个指南针:http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Compass.html
由于我的应用程序仅在横向模式下运行,因此指南针也是如此。但是,似乎此代码在横向模式下无法正常运行。北点更向东。如果我运行Android示例代码,我会遇到同样的问题。
有没有人注意到这一点,甚至更好有人有解决方案吗?
顺便说一下,我在Nexus One上测试了这个。不确定这是否与手机有关。
祝你好运
P
答案 0 :(得分: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 ));