summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobrun Van Nuland <tobrun.van.nuland@gmail.com>2017-08-23 11:19:51 +0200
committerTobrun Van Nuland <tobrun.van.nuland@gmail.com>2017-08-23 11:19:51 +0200
commite612a646d68ab732fd3a85fda358cb4d830ebb20 (patch)
tree16d458bcf91925705c182dc0da6b850c7d5a7307
parentd2160b81a59821ea025f299fbbaf79454e8d387b (diff)
downloadqtlocation-mapboxgl-upstream/tvn-android-animations.tar.gz
wip platform animationsupstream/tvn-android-animations
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java4
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeCameraPosition.java18
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/PlatformAnimationActivity.java38
3 files changed, 60 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
index cfe042d1f9..fb64118241 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
@@ -1015,4 +1015,8 @@ public class MapView extends FrameLayout {
onMapReadyCallbackList.add(callback);
}
}
+
+ public NativeCameraPosition getCameraPosition(){
+ return new NativeCameraPosition(nativeMapView);
+ }
}
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeCameraPosition.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeCameraPosition.java
new file mode 100644
index 0000000000..599183356e
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeCameraPosition.java
@@ -0,0 +1,18 @@
+package com.mapbox.mapboxsdk.maps;
+
+public class NativeCameraPosition {
+
+ private NativeMapView nativeMapView;
+
+ public NativeCameraPosition(NativeMapView nativeMapView) {
+ this.nativeMapView = nativeMapView;
+ }
+
+ public void setTilt(double tilt) {
+ nativeMapView.setPitch(tilt, 0);
+ }
+
+ public void setBearing(double bearing) {
+ nativeMapView.setBearing(bearing);
+ }
+}
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/PlatformAnimationActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/PlatformAnimationActivity.java
index 7a3b38ff5b..a695c07db9 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/PlatformAnimationActivity.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/PlatformAnimationActivity.java
@@ -1,10 +1,17 @@
package com.mapbox.mapboxsdk.testapp.activity.camera;
+import android.animation.AnimatorSet;
+import android.animation.ValueAnimator;
import android.os.Bundle;
+import android.renderscript.Sampler;
+import android.support.v4.view.animation.FastOutLinearInInterpolator;
+import android.support.v4.view.animation.FastOutSlowInInterpolator;
import android.support.v7.app.AppCompatActivity;
+import android.view.animation.AccelerateDecelerateInterpolator;
import com.mapbox.mapboxsdk.maps.MapView;
import com.mapbox.mapboxsdk.maps.MapboxMap;
+import com.mapbox.mapboxsdk.maps.NativeCameraPosition;
import com.mapbox.mapboxsdk.maps.OnMapReadyCallback;
import com.mapbox.mapboxsdk.testapp.R;
@@ -28,6 +35,37 @@ public class PlatformAnimationActivity extends AppCompatActivity implements OnMa
@Override
public void onMapReady(MapboxMap map) {
mapboxMap = map;
+
+ final NativeCameraPosition cameraPosition = mapView.getCameraPosition();
+
+ // Animate tilt
+ ValueAnimator tiltAnimator = ValueAnimator.ofFloat(0f, 60.0f);
+ tiltAnimator.setStartDelay(1000);
+ tiltAnimator.setDuration(4000);
+ tiltAnimator.setInterpolator(new FastOutSlowInInterpolator());
+ tiltAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+ public void onAnimationUpdate(ValueAnimator animation) {
+ cameraPosition.setTilt(((Float) animation.getAnimatedValue()).doubleValue());
+ }
+ });
+
+ // Animate bearing
+ ValueAnimator bearingAnimator = ValueAnimator.ofFloat(0.0f, 160.0f);
+ bearingAnimator.setDuration(6000);
+ bearingAnimator.setInterpolator(new FastOutLinearInInterpolator());
+ bearingAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+ @Override
+ public void onAnimationUpdate(ValueAnimator animation) {
+ cameraPosition.setBearing(((Float)animation.getAnimatedValue()).doubleValue());
+ }
+ });
+
+ // Combine animations and start
+ AnimatorSet animatorSet = new AnimatorSet();
+ animatorSet.setStartDelay(1500);
+ animatorSet.play(tiltAnimator);
+ animatorSet.play(bearingAnimator);
+ animatorSet.start();
}
@Override