[Android] #3761 - add map padding, introduce new feature activity
[android] #3781 #3899 - add map padding, user location view, ViewSettings, TrackingSettings [android] #3761 - update map padding sample [android] #3761 - add map padding
This commit is contained in:
@@ -89,6 +89,10 @@
|
||||
<activity
|
||||
android:name=".DynamicMarkerChangeActivity"
|
||||
android:label="@string/activity_dynamic_marker" />
|
||||
<activity
|
||||
android:name=".MapPaddingActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:label="@string/activity_map_padding" />
|
||||
|
||||
<meta-data
|
||||
android:name="com.mapbox.AccessToken"
|
||||
|
||||
@@ -18,6 +18,7 @@ import com.mapbox.mapboxsdk.constants.Style;
|
||||
import com.mapbox.mapboxsdk.maps.MapView;
|
||||
import com.mapbox.mapboxsdk.maps.MapboxMap;
|
||||
import com.mapbox.mapboxsdk.maps.OnMapReadyCallback;
|
||||
import com.mapbox.mapboxsdk.maps.TrackingSettings;
|
||||
import com.mapbox.mapboxsdk.maps.UiSettings;
|
||||
|
||||
public class DoubleMapActivity extends AppCompatActivity {
|
||||
@@ -72,7 +73,8 @@ public class DoubleMapActivity extends AppCompatActivity {
|
||||
|
||||
mapboxMap.moveCamera(CameraUpdateFactory.zoomTo(18));
|
||||
try {
|
||||
mapboxMap.setMyLocationTrackingMode(MyLocationTracking.TRACKING_FOLLOW);
|
||||
TrackingSettings settings = mapboxMap.getTrackingSettings();
|
||||
settings.setMyLocationTrackingMode(MyLocationTracking.TRACKING_FOLLOW);
|
||||
} catch (SecurityException e) {
|
||||
// permission is handled in MainActivity
|
||||
getActivity().finish();
|
||||
@@ -96,7 +98,8 @@ public class DoubleMapActivity extends AppCompatActivity {
|
||||
uiSettings.setLogoEnabled(false);
|
||||
|
||||
try {
|
||||
mapboxMap.setMyLocationTrackingMode(MyLocationTracking.TRACKING_FOLLOW);
|
||||
TrackingSettings settings = mapboxMap.getTrackingSettings();
|
||||
settings.setMyLocationTrackingMode(MyLocationTracking.TRACKING_FOLLOW);
|
||||
}catch (SecurityException e){
|
||||
// permission is handled in MainActivity
|
||||
getActivity().finish();
|
||||
|
||||
@@ -38,6 +38,7 @@ import com.mapbox.mapboxsdk.constants.Style;
|
||||
import com.mapbox.mapboxsdk.geometry.LatLng;
|
||||
import com.mapbox.mapboxsdk.layers.CustomLayer;
|
||||
import com.mapbox.mapboxsdk.maps.OnMapReadyCallback;
|
||||
import com.mapbox.mapboxsdk.maps.TrackingSettings;
|
||||
import com.mapbox.mapboxsdk.maps.UiSettings;
|
||||
import com.mapbox.mapboxsdk.testapp.layers.ExampleCustomLayer;
|
||||
import com.mapbox.mapboxsdk.testapp.utils.GeoParseUtil;
|
||||
@@ -466,6 +467,10 @@ public class MainActivity extends AppCompatActivity {
|
||||
case R.id.action_dynamic_marker:
|
||||
startActivity(new Intent(getApplicationContext(), DynamicMarkerChangeActivity.class));
|
||||
return true;
|
||||
|
||||
case R.id.action_map_padding:
|
||||
startActivity(new Intent(getApplicationContext(),MapPaddingActivity.class));
|
||||
return true;
|
||||
|
||||
default:
|
||||
return changeMapStyle(menuItem.getItemId());
|
||||
@@ -551,8 +556,11 @@ public class MainActivity extends AppCompatActivity {
|
||||
}
|
||||
});
|
||||
mMapboxMap.setMyLocationEnabled(true);
|
||||
mMapboxMap.setMyLocationTrackingMode(MyLocationTracking.TRACKING_NONE);
|
||||
mMapboxMap.setMyBearingTrackingMode(MyBearingTracking.GPS);
|
||||
|
||||
TrackingSettings trackingSettings = mMapboxMap.getTrackingSettings();
|
||||
trackingSettings.setMyLocationTrackingMode(MyLocationTracking.TRACKING_NONE);
|
||||
trackingSettings.setMyBearingTrackingMode(MyBearingTracking.GPS);
|
||||
|
||||
mLocationFAB.setColorFilter(ContextCompat.getColor(this, R.color.primary));
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -0,0 +1,162 @@
|
||||
package com.mapbox.mapboxsdk.testapp;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v7.app.ActionBar;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import com.mapbox.mapboxsdk.annotations.MarkerOptions;
|
||||
import com.mapbox.mapboxsdk.camera.CameraPosition;
|
||||
import com.mapbox.mapboxsdk.constants.MyLocationTracking;
|
||||
import com.mapbox.mapboxsdk.constants.Style;
|
||||
import com.mapbox.mapboxsdk.geometry.LatLng;
|
||||
import com.mapbox.mapboxsdk.maps.CameraUpdateFactory;
|
||||
import com.mapbox.mapboxsdk.maps.MapView;
|
||||
import com.mapbox.mapboxsdk.maps.MapboxMap;
|
||||
import com.mapbox.mapboxsdk.maps.OnMapReadyCallback;
|
||||
import com.mapbox.mapboxsdk.maps.TrackingSettings;
|
||||
import com.mapbox.mapboxsdk.utils.ApiAccess;
|
||||
|
||||
public class MapPaddingActivity extends AppCompatActivity {
|
||||
|
||||
private MapView mMapView;
|
||||
private MapboxMap mMapboxMap;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_map_padding);
|
||||
|
||||
final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
|
||||
ActionBar actionBar = getSupportActionBar();
|
||||
if (actionBar != null) {
|
||||
actionBar.setDisplayHomeAsUpEnabled(true);
|
||||
actionBar.setDisplayShowHomeEnabled(true);
|
||||
}
|
||||
|
||||
mMapView = (MapView) findViewById(R.id.mapView);
|
||||
mMapView.setTag(true);
|
||||
mMapView.setAccessToken(ApiAccess.getToken(this));
|
||||
mMapView.onCreate(savedInstanceState);
|
||||
mMapView.getMapAsync(new OnMapReadyCallback() {
|
||||
@Override
|
||||
public void onMapReady(@NonNull MapboxMap mapboxMap) {
|
||||
mMapboxMap = mapboxMap;
|
||||
mapboxMap.setStyle(Style.MAPBOX_STREETS);
|
||||
|
||||
moveToBangalore();
|
||||
|
||||
int paddingLeft = (int) getResources().getDimension(R.dimen.map_padding_left);
|
||||
int paddingBottom = (int) getResources().getDimension(R.dimen.map_padding_bottom);
|
||||
int paddingRight = (int) getResources().getDimension(R.dimen.map_padding_right);
|
||||
mapboxMap.setPadding(paddingLeft, toolbar.getHeight(), paddingRight, paddingBottom);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStart() {
|
||||
super.onStart();
|
||||
mMapView.onStart();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
mMapView.onResume();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
mMapView.onPause();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStop() {
|
||||
super.onStop();
|
||||
mMapView.onStop();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
mMapView.onSaveInstanceState(outState);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
mMapView.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLowMemory() {
|
||||
super.onLowMemory();
|
||||
mMapView.onLowMemory();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
getMenuInflater().inflate(R.menu.menu_padding, menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
private void toggleGps(boolean enable) {
|
||||
try {
|
||||
// Enable user location
|
||||
mMapboxMap.setMyLocationEnabled(enable);
|
||||
|
||||
TrackingSettings trackingSettings = mMapboxMap.getTrackingSettings();
|
||||
trackingSettings.setDismissTrackingOnGesture(false);
|
||||
trackingSettings.setMyLocationTrackingMode(enable ? MyLocationTracking.TRACKING_FOLLOW : MyLocationTracking.TRACKING_NONE);
|
||||
} catch (SecurityException e) {
|
||||
// permission not granted is handled in MainActivity
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
||||
private void moveToBangalore() {
|
||||
toggleGps(false);
|
||||
LatLng bangalore = new LatLng(12.9810816, 77.6368034);
|
||||
mMapboxMap.moveCamera(CameraUpdateFactory.newCameraPosition(
|
||||
new CameraPosition.Builder()
|
||||
.zoom(16)
|
||||
.target(bangalore)
|
||||
.bearing(40)
|
||||
.tilt(45)
|
||||
.build()));
|
||||
mMapboxMap.addMarker(new MarkerOptions().title("Center map").position(bangalore));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case android.R.id.home:
|
||||
onBackPressed();
|
||||
return true;
|
||||
|
||||
case R.id.action_user_tracking:
|
||||
if (mMapboxMap != null) {
|
||||
toggleGps(true);
|
||||
}
|
||||
return true;
|
||||
|
||||
case R.id.action_bangalore:
|
||||
if (mMapboxMap != null) {
|
||||
moveToBangalore();
|
||||
}
|
||||
return true;
|
||||
|
||||
default:
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.mapbox.mapboxsdk.constants.MyBearingTracking;
|
||||
import com.mapbox.mapboxsdk.constants.MyLocationTracking;
|
||||
import com.mapbox.mapboxsdk.geometry.LatLng;
|
||||
import com.mapbox.mapboxsdk.maps.OnMapReadyCallback;
|
||||
import com.mapbox.mapboxsdk.maps.TrackingSettings;
|
||||
import com.mapbox.mapboxsdk.utils.ApiAccess;
|
||||
import com.mapbox.mapboxsdk.maps.MapView;
|
||||
|
||||
@@ -135,28 +136,29 @@ public class MyLocationTrackingModeActivity extends AppCompatActivity implements
|
||||
|
||||
@Override
|
||||
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) throws SecurityException {
|
||||
TrackingSettings trackingSettings = mMapboxMap.getTrackingSettings();
|
||||
if (parent.getId() == R.id.spinner_location) {
|
||||
switch (position) {
|
||||
case 0:
|
||||
mMapboxMap.setMyLocationTrackingMode(MyLocationTracking.TRACKING_NONE);
|
||||
trackingSettings.setMyLocationTrackingMode(MyLocationTracking.TRACKING_NONE);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
mMapboxMap.setMyLocationTrackingMode(MyLocationTracking.TRACKING_FOLLOW);
|
||||
trackingSettings.setMyLocationTrackingMode(MyLocationTracking.TRACKING_FOLLOW);
|
||||
break;
|
||||
}
|
||||
} else if (parent.getId() == R.id.spinner_bearing) {
|
||||
switch (position) {
|
||||
case 0:
|
||||
mMapboxMap.setMyBearingTrackingMode(MyBearingTracking.NONE);
|
||||
trackingSettings.setMyBearingTrackingMode(MyBearingTracking.NONE);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
mMapboxMap.setMyBearingTrackingMode(MyBearingTracking.GPS);
|
||||
trackingSettings.setMyBearingTrackingMode(MyBearingTracking.GPS);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
mMapboxMap.setMyBearingTrackingMode(MyBearingTracking.COMPASS);
|
||||
trackingSettings.setMyBearingTrackingMode(MyBearingTracking.COMPASS);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M19,19H5V5h7V3H5c-1.11,0 -2,0.9 -2,2v14c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2v-7h-2v7zM14,3v2h3.59l-9.83,9.83 1.41,1.41L19,6.41V10h2V3h-7z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,49 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<com.mapbox.mapboxsdk.maps.MapView
|
||||
android:id="@+id/mapView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
<View
|
||||
android:layout_width="@dimen/map_padding_left"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="?attr/actionBarSize"
|
||||
android:alpha="0.5"
|
||||
android:background="@color/mapbox_blue" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/map_padding_bottom"
|
||||
android:layout_gravity="bottom"
|
||||
android:layout_marginEnd="@dimen/map_padding_right"
|
||||
android:layout_marginLeft="@dimen/map_padding_left"
|
||||
android:layout_marginRight="@dimen/map_padding_right"
|
||||
android:layout_marginStart="@dimen/map_padding_left"
|
||||
android:alpha="0.5"
|
||||
android:background="@color/mapbox_blue" />
|
||||
|
||||
|
||||
<android.support.v7.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
android:alpha="0.5"
|
||||
android:background="@color/primary"
|
||||
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
|
||||
|
||||
<View
|
||||
android:layout_width="@dimen/map_padding_right"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="end"
|
||||
android:layout_marginLeft="@dimen/map_padding_left"
|
||||
android:layout_marginStart="@dimen/map_padding_left"
|
||||
android:alpha="0.5"
|
||||
android:layout_marginTop="?attr/actionBarSize"
|
||||
android:background="@color/mapbox_blue" />
|
||||
|
||||
</FrameLayout>
|
||||
@@ -198,7 +198,12 @@
|
||||
android:icon="@drawable/ic_dynamic_marker"
|
||||
android:title="@string/action_dynamic_marker" />
|
||||
|
||||
<item
|
||||
android:id="@+id/action_map_padding"
|
||||
android:checkable="false"
|
||||
android:icon="@drawable/ic_map_padding"
|
||||
android:title="@string/action_map_padding" />
|
||||
|
||||
</menu>
|
||||
</item>
|
||||
|
||||
</menu>
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:mapbox="http://schemas.android.com/apk/res-auto">
|
||||
<item
|
||||
android:id="@+id/action_user_tracking"
|
||||
android:title="My Location Tracking"
|
||||
mapbox:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_bangalore"
|
||||
android:title="Bangalore"
|
||||
mapbox:showAsAction="never" />
|
||||
</menu>
|
||||
@@ -3,4 +3,8 @@
|
||||
<dimen name="fab_margin">16dp</dimen>
|
||||
<dimen name="attr_margin">10dp</dimen>
|
||||
<dimen name="coordinatebounds_margin">32dp</dimen>
|
||||
<dimen name="map_padding_left">96dp</dimen>
|
||||
<dimen name="map_padding_bottom">256dp</dimen>
|
||||
<dimen name="map_padding_right">32dp</dimen>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
<string name="activity_double_map">Double Map Activity</string>
|
||||
<string name="activity_scroll_by">Scroll By Activity</string>
|
||||
<string name="activity_dynamic_marker">Dynamic Marker Activity</string>
|
||||
<string name="activity_map_padding">Map Padding Activity</string>
|
||||
|
||||
<string name="navdrawer_menu_title_mainactivity_controls">Main Activity Controls</string>
|
||||
<string name="navdrawer_menu_title_mainactivity_styles">Main Activity Styles</string>
|
||||
@@ -54,6 +55,7 @@
|
||||
<string name="action_remove_polylines">Remove polylines</string>
|
||||
<string name="action_double_mapview">Double MapView</string>
|
||||
<string name="action_dynamic_marker">Dynamic Marker</string>
|
||||
<string name="action_map_padding">Map Padding</string>
|
||||
|
||||
<string name="button_camera_move">Move</string>
|
||||
<string name="button_camera_ease">Ease</string>
|
||||
|
||||
Reference in New Issue
Block a user