2011-04-21 280 views
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); 

回答

3

好了,我不会呼吁onCreate()enableCompass()(这是我认为这个代码来自给出的setContentView()调用)。在onResume()中启用指南针并在onPause()中将其禁用,因此当您的活动不在屏幕上时,不会使传感器保持活动状态。你不应该需要postInvalidate()

否则,这似乎很好。请记住,它只适用于实际的硬件。

Here is a sample project使指南针MyLocationOverlay明确工作,虽然您将需要替换自己的android:apiKey值。