как добавить компас в mapview - PullRequest
1 голос
/ 22 апреля 2011

Как мне получить компас, который будет отображаться на экране при создании моего обзора карты.Что не так с этим кодом?какие-либо предложения?

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.map);



        mapView = (MapView) findViewById(R.id.mapview);
        mapView.setBuiltInZoomControls(true);

        mc = mapView.getController();
        myLoc = new MyLocationOverlay(this, mapView);
        myLoc.enableCompass();
        mapView.getOverlays().add(myLoc);


        mapView.postInvalidate();

        locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

1 Ответ

3 голосов
/ 22 апреля 2011

Ну, я бы не стал звонить enableCompass() на onCreate() (откуда, я полагаю, взялся этот код, учитывая вызов setContentView()). Включите компас в onResume() и отключите его в onPause(), чтобы вы не поддерживали работу датчиков, когда ваша активность не отображается на экране. И вам не нужно postInvalidate().

В противном случае, это нормально. Имейте в виду, что он будет работать только на реальном оборудовании.

Вот пример проекта , который включает компас на MyLocationOverlay, который определенно работает, хотя вам нужно будет заменить его собственным значением android:apiKey.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...