1

マップビューの作成時にコンパスを画面に表示するにはどうすればよいですか? このコードの何が問題になっていますか? 助言がありますか?

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);
4

1 に答える 1

3

まあ、私は電話をかけません(電話があれば、enableCompass()このonCreate()コードがどこから来たと思いますかsetContentView())。でコンパスを有効にしてonResume()で無効にするとonPause()、アクティビティが画面に表示されていないときにセンサーが作動しなくなります。そして、あなたは必要ありませんpostInvalidate()

そうでなければ、これは問題ないようです。実際のハードウェアでのみ動作することに注意してください。

MyLocationOverlay独自の値に置き換える必要がありますが、確実に機能するコンパスを有効にするサンプル プロジェクトandroid:apiKeyを次に示します。

于 2011-04-21T23:59:08.493 に答える