summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraAnimatorActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraAnimatorActivity.java')
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraAnimatorActivity.java281
1 files changed, 0 insertions, 281 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraAnimatorActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraAnimatorActivity.java
deleted file mode 100644
index 7ce54831f2..0000000000
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraAnimatorActivity.java
+++ /dev/null
@@ -1,281 +0,0 @@
-package com.mapbox.mapboxsdk.testapp.activity.camera;
-
-import android.animation.Animator;
-import android.animation.AnimatorSet;
-import android.animation.TypeEvaluator;
-import android.animation.ValueAnimator;
-import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v4.util.LongSparseArray;
-import android.support.v4.view.animation.FastOutLinearInInterpolator;
-import android.support.v4.view.animation.FastOutSlowInInterpolator;
-import android.support.v4.view.animation.PathInterpolatorCompat;
-import android.support.v7.app.AppCompatActivity;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.animation.AnticipateOvershootInterpolator;
-import android.view.animation.BounceInterpolator;
-import android.view.animation.Interpolator;
-
-import com.mapbox.mapboxsdk.camera.CameraPosition;
-import com.mapbox.mapboxsdk.camera.CameraUpdateFactory;
-import com.mapbox.mapboxsdk.geometry.LatLng;
-import com.mapbox.mapboxsdk.maps.MapView;
-import com.mapbox.mapboxsdk.maps.MapboxMap;
-import com.mapbox.mapboxsdk.maps.OnMapReadyCallback;
-import com.mapbox.mapboxsdk.maps.Style;
-import com.mapbox.mapboxsdk.testapp.R;
-
-/**
- * Test activity showcasing using Android SDK animators to animate camera position changes.
- */
-public class CameraAnimatorActivity extends AppCompatActivity implements OnMapReadyCallback {
-
- private static final double ANIMATION_DELAY_FACTOR = 1.5;
- private static final LatLng START_LAT_LNG = new LatLng(37.787947, -122.407432);
-
- private final LongSparseArray<Animator> animators = new LongSparseArray<>();
- private Animator set;
-
- {
- AnimatorSet accelerateDecelerateAnimatorSet = new AnimatorSet();
- accelerateDecelerateAnimatorSet.playTogether(
- createLatLngAnimator(START_LAT_LNG, new LatLng(37.826715, -122.422795)),
- obtainExampleInterpolator(new FastOutSlowInInterpolator(), 2500)
- );
- animators.put(R.id.menu_action_accelerate_decelerate_interpolator, accelerateDecelerateAnimatorSet);
-
- AnimatorSet bounceAnimatorSet = new AnimatorSet();
- bounceAnimatorSet.playTogether(
- createLatLngAnimator(START_LAT_LNG, new LatLng(37.787947, -122.407432)),
- obtainExampleInterpolator(new BounceInterpolator(), 3750)
- );
- animators.put(R.id.menu_action_bounce_interpolator, bounceAnimatorSet);
-
- animators.put(R.id.menu_action_anticipate_overshoot_interpolator,
- obtainExampleInterpolator(new AnticipateOvershootInterpolator(), 2500)
- );
-
- animators.put(R.id.menu_action_path_interpolator, obtainExampleInterpolator(
- PathInterpolatorCompat.create(.22f, .68f, 0, 1.71f), 2500));
- }
-
- private MapView mapView;
- private MapboxMap mapboxMap;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_camera_animator);
- mapView = (MapView) findViewById(R.id.mapView);
- if (mapView != null) {
- mapView.onCreate(savedInstanceState);
- mapView.getMapAsync(this);
- }
- }
-
- @Override
- public void onMapReady(@NonNull final MapboxMap map) {
- mapboxMap = map;
- map.setStyle(Style.MAPBOX_STREETS);
- initFab();
- }
-
- private void initFab() {
- findViewById(R.id.fab).setOnClickListener(view -> {
- view.setVisibility(View.GONE);
-
- CameraPosition animatedPosition = new CameraPosition.Builder()
- .target(new LatLng(37.789992, -122.402214))
- .tilt(60)
- .zoom(14.5f)
- .bearing(135)
- .build();
-
- set = createExampleAnimator(mapboxMap.getCameraPosition(), animatedPosition);
- set.start();
- });
- }
-
- //
- // Animator API used for the animation on the FAB
- //
-
- private Animator createExampleAnimator(CameraPosition currentPosition, CameraPosition targetPosition) {
- AnimatorSet animatorSet = new AnimatorSet();
- animatorSet.play(createLatLngAnimator(currentPosition.target, targetPosition.target));
- animatorSet.play(createZoomAnimator(currentPosition.zoom, targetPosition.zoom));
- animatorSet.play(createBearingAnimator(currentPosition.bearing, targetPosition.bearing));
- animatorSet.play(createTiltAnimator(currentPosition.tilt, targetPosition.tilt));
- return animatorSet;
- }
-
- private Animator createLatLngAnimator(LatLng currentPosition, LatLng targetPosition) {
- ValueAnimator latLngAnimator = ValueAnimator.ofObject(new LatLngEvaluator(), currentPosition, targetPosition);
- latLngAnimator.setDuration((long) (1000 * ANIMATION_DELAY_FACTOR));
- latLngAnimator.setInterpolator(new FastOutSlowInInterpolator());
- latLngAnimator.addUpdateListener(animation -> mapboxMap.moveCamera(
- CameraUpdateFactory.newLatLng((LatLng) animation.getAnimatedValue()))
- );
- return latLngAnimator;
- }
-
- private Animator createZoomAnimator(double currentZoom, double targetZoom) {
- ValueAnimator zoomAnimator = ValueAnimator.ofFloat((float) currentZoom, (float) targetZoom);
- zoomAnimator.setDuration((long) (2200 * ANIMATION_DELAY_FACTOR));
- zoomAnimator.setStartDelay((long) (600 * ANIMATION_DELAY_FACTOR));
- zoomAnimator.setInterpolator(new AnticipateOvershootInterpolator());
- zoomAnimator.addUpdateListener(animation -> mapboxMap.moveCamera(
- CameraUpdateFactory.zoomTo((Float) animation.getAnimatedValue()))
- );
- return zoomAnimator;
- }
-
- private Animator createBearingAnimator(double currentBearing, double targetBearing) {
- ValueAnimator bearingAnimator = ValueAnimator.ofFloat((float) currentBearing, (float) targetBearing);
- bearingAnimator.setDuration((long) (1000 * ANIMATION_DELAY_FACTOR));
- bearingAnimator.setStartDelay((long) (1000 * ANIMATION_DELAY_FACTOR));
- bearingAnimator.setInterpolator(new FastOutLinearInInterpolator());
- bearingAnimator.addUpdateListener(animation -> mapboxMap.moveCamera(
- CameraUpdateFactory.bearingTo((Float) animation.getAnimatedValue()))
- );
- return bearingAnimator;
- }
-
- private Animator createTiltAnimator(double currentTilt, double targetTilt) {
- ValueAnimator tiltAnimator = ValueAnimator.ofFloat((float) currentTilt, (float) targetTilt);
- tiltAnimator.setDuration((long) (1000 * ANIMATION_DELAY_FACTOR));
- tiltAnimator.setStartDelay((long) (1500 * ANIMATION_DELAY_FACTOR));
- tiltAnimator.addUpdateListener(animation -> mapboxMap.moveCamera(
- CameraUpdateFactory.tiltTo((Float) animation.getAnimatedValue()))
- );
- return tiltAnimator;
- }
-
- //
- // Interpolator examples
- //
-
- private Animator obtainExampleInterpolator(int menuItemId) {
- return animators.get(menuItemId);
- }
-
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- getMenuInflater().inflate(R.menu.menu_animator, menu);
- return true;
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- if (mapboxMap == null) {
- return false;
- }
-
- if (item.getItemId() != android.R.id.home) {
- findViewById(R.id.fab).setVisibility(View.GONE);
- resetCameraPosition();
- playAnimation(item.getItemId());
- }
- return super.onOptionsItemSelected(item);
- }
-
- private void resetCameraPosition() {
- mapboxMap.moveCamera(CameraUpdateFactory.newCameraPosition(
- new CameraPosition.Builder()
- .target(START_LAT_LNG)
- .zoom(11)
- .bearing(0)
- .tilt(0)
- .build()
- ));
- }
-
- private void playAnimation(int itemId) {
- Animator animator = obtainExampleInterpolator(itemId);
- if (animator != null) {
- animator.cancel();
- animator.start();
- }
- }
-
- private Animator obtainExampleInterpolator(Interpolator interpolator, long duration) {
- ValueAnimator zoomAnimator = ValueAnimator.ofFloat(11.0f, 16.0f);
- zoomAnimator.setDuration((long) (duration * ANIMATION_DELAY_FACTOR));
- zoomAnimator.setInterpolator(interpolator);
- zoomAnimator.addUpdateListener(animation -> mapboxMap.moveCamera(
- CameraUpdateFactory.zoomTo((Float) animation.getAnimatedValue()))
- );
- return zoomAnimator;
- }
-
- //
- // MapView lifecycle
- //
-
- @Override
- protected void onStart() {
- super.onStart();
- mapView.onStart();
- }
-
- @Override
- protected void onResume() {
- super.onResume();
- mapView.onResume();
- }
-
- @Override
- protected void onPause() {
- super.onPause();
- mapView.onPause();
- }
-
- @Override
- protected void onStop() {
- super.onStop();
- mapView.onStop();
- for (int i = 0; i < animators.size(); i++) {
- animators.get(animators.keyAt(i)).cancel();
- }
- if (set != null) {
- set.cancel();
- }
- }
-
- @Override
- protected void onSaveInstanceState(Bundle outState) {
- super.onSaveInstanceState(outState);
- mapView.onSaveInstanceState(outState);
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- mapView.onDestroy();
- }
-
- @Override
- public void onLowMemory() {
- super.onLowMemory();
- mapView.onLowMemory();
- }
-
- /**
- * Helper class to evaluate LatLng objects with a ValueAnimator
- */
- private static class LatLngEvaluator implements TypeEvaluator<LatLng> {
-
- private final LatLng latLng = new LatLng();
-
- @Override
- public LatLng evaluate(float fraction, LatLng startValue, LatLng endValue) {
- latLng.setLatitude(startValue.getLatitude()
- + ((endValue.getLatitude() - startValue.getLatitude()) * fraction));
- latLng.setLongitude(startValue.getLongitude()
- + ((endValue.getLongitude() - startValue.getLongitude()) * fraction));
- return latLng;
- }
- }
-}