diff --git a/android/java/app/src/main/java/com/mapbox/mapboxgl/app/MainActivity.java b/android/java/app/src/main/java/com/mapbox/mapboxgl/app/MainActivity.java index d75bded3b..7a42306c8 100644 --- a/android/java/app/src/main/java/com/mapbox/mapboxgl/app/MainActivity.java +++ b/android/java/app/src/main/java/com/mapbox/mapboxgl/app/MainActivity.java @@ -14,6 +14,7 @@ import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; +import android.widget.ImageView; import android.widget.Spinner; import android.widget.TextView; @@ -39,6 +40,9 @@ public class MainActivity extends ActionBarActivity { // The FPS label TextView mFpsTextView; + // The compass + ImageView mCompassView; + // // Lifecycle events // @@ -53,9 +57,14 @@ public class MainActivity extends ActionBarActivity { setContentView(R.layout.activity_main); mMapFragment = (MapFragment)getSupportFragmentManager().findFragmentById(R.id.fragment_map); mMapFragment.getMap().setOnFpsChangedListener(new MyOnFpsChangedListener()); + mMapFragment.getMap().setOnMapChangedListener(new MyOnMapChangedListener()); + mFpsTextView = (TextView)findViewById(R.id.view_fps); mFpsTextView.setText(""); + mCompassView = (ImageView)findViewById(R.id.view_compass); + mCompassView.setOnClickListener(new CompassOnClickListener()); + // Add a toolbar as the action bar Toolbar mainToolbar = (Toolbar)findViewById(R.id.toolbar_main); setSupportActionBar(mainToolbar); @@ -197,4 +206,22 @@ public class MainActivity extends ActionBarActivity { mFpsTextView.setText(getResources().getString(R.string.label_fps) + String.format(" %4.2f", fps)); } } + + // Called when map state changes + public class MyOnMapChangedListener implements MapView.OnMapChangedListener { + + @Override + public void onMapChanged() { + mCompassView.setRotation((float)mMapFragment.getMap().getDirection()); + } + } + + // Called when someone presses the compass + public class CompassOnClickListener implements View.OnClickListener { + + @Override + public void onClick(View view) { + mMapFragment.getMap().resetNorth(); + } + } } diff --git a/android/java/app/src/main/res/drawable-mdpi/compass.png b/android/java/app/src/main/res/drawable-mdpi/compass.png new file mode 100644 index 000000000..58e7e08d2 Binary files /dev/null and b/android/java/app/src/main/res/drawable-mdpi/compass.png differ diff --git a/android/java/app/src/main/res/layout/activity_main.xml b/android/java/app/src/main/res/layout/activity_main.xml index b69df55de..d14f2ead9 100644 --- a/android/java/app/src/main/res/layout/activity_main.xml +++ b/android/java/app/src/main/res/layout/activity_main.xml @@ -30,7 +30,16 @@ tools:context="${packageName}.${activityClass}" tools:layout="@layout/fragment_main" /> - + +