diff options
author | Tobrun <tobrun.van.nuland@gmail.com> | 2016-10-10 23:51:30 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-10 23:51:30 +0200 |
commit | e598bbfa7c29ad3a384e157b504c4509f1fcdbb5 (patch) | |
tree | 6dcdb0f9a358c0168b83097a97abb85b5f6aa729 /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils | |
parent | 5891c7028dbc6ae6decb5a3b059fd48f4e700d44 (diff) | |
download | qtlocation-mapboxgl-e598bbfa7c29ad3a384e157b504c4509f1fcdbb5.tar.gz |
Rotate markerview (#6640)
* [android] - MarkerView rotation bug, limit degrees from 0 to 360 while creating a MarkerView
* update MarkerView#setRotation to limit input from 0 - 360 degrees, calculates difference in angle and animates rotation by a certain amount instead of animating to a value. Exposed new AnimatorUtils#animateRotationTo. Integrated into MarkerViewManager. Cleanup some unused imports. Updated javadoc.
* updated MarkerViewActivity in test application to test for regressions.
* added tests to validate changes to MarkerView#setRotate
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/AnimatorUtils.java | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/AnimatorUtils.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/AnimatorUtils.java index 495393c258..ab3b841043 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/AnimatorUtils.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/AnimatorUtils.java @@ -7,6 +7,7 @@ import android.animation.ObjectAnimator; import android.support.annotation.AnimatorRes; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.v4.view.animation.FastOutSlowInInterpolator; import android.view.View; public class AnimatorUtils { @@ -61,6 +62,17 @@ public class AnimatorUtils { rotateAnimator.start(); } + public static void rotateBy(@NonNull final View view, float rotationBy) { + view.setLayerType(View.LAYER_TYPE_HARDWARE, null); + view.animate().rotationBy(rotationBy).setInterpolator(new FastOutSlowInInterpolator()).setListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + super.onAnimationEnd(animation); + view.setLayerType(View.LAYER_TYPE_NONE, null); + } + }); + } + public static void alpha(@NonNull final View convertView, float alpha, @Nullable final OnAnimationEndListener listener) { convertView.setLayerType(View.LAYER_TYPE_HARDWARE, null); ObjectAnimator rotateAnimator = ObjectAnimator.ofFloat(convertView, View.ALPHA, convertView.getAlpha(), alpha); |