Пример Android-компаса не работает в ландшафтном режиме - PullRequest
1 голос
/ 01 ноября 2010

Я разработал компас на основе этого примера: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Compass.html

Поскольку мое приложение работает только в ландшафтном режиме, будет работать и компас.Тем не менее, похоже, что этот код не работает правильно в ландшафтном режиме.Север больше указывает на восток.Если я запускаю пример кода Android, я получаю ту же проблему.

Кто-нибудь еще заметил это, и еще лучше, у кого-нибудь есть решение?

Кстати, я тестирую это на NexusОдин.Не уверен, что это проблема с телефоном.

С уважением

P

1 Ответ

1 голос
/ 29 ноября 2010

Вы должны вычесть 90 градусов из поворота, потому что магнит сверху телефона.

int test = getResources().getConfiguration().orientation;
if(Configuration.ORIENTATION_LANDSCAPE == test) {
            rotation = -90f;
        }
        else {
            rotation = 0f;
        }
canvas.rotate((float) (-Math.toDegrees(mOrientation[0]) + rotation ));
...