diff options
author | Tobrun <tobrun@mapbox.com> | 2016-05-20 09:45:35 +0200 |
---|---|---|
committer | Tobrun <tobrun@mapbox.com> | 2016-05-20 12:03:27 +0200 |
commit | d2fdf4a4ac7ae678e194dab2770724624fa33e79 (patch) | |
tree | 7c557970f27e2497a17fb5796e138e10406ccd7f /platform/android | |
parent | 952875a30c104b779f3563a27b4caf1a7b674662 (diff) | |
download | qtlocation-mapboxgl-d2fdf4a4ac7ae678e194dab2770724624fa33e79.tar.gz |
[android] #3276 - hardware accelerate animations
Diffstat (limited to 'platform/android')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java index 75b0a88084..c04dbc0e32 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java @@ -706,7 +706,7 @@ public class MapboxMap { final int animSelectRes = marker.getSelectAnimRes(); adaptedView.setOnClickListener(new View.OnClickListener() { @Override - public void onClick(View v) { + public void onClick(final View v) { boolean clickHandled = false; if (mOnMarkerViewClickListener != null) { clickHandled = mOnMarkerViewClickListener.onMarkerClick(marker, v, adapter); @@ -714,6 +714,7 @@ public class MapboxMap { if (!clickHandled) { if (animSelectRes != 0) { + v.setLayerType(View.LAYER_TYPE_HARDWARE, null); Animator animator = AnimatorInflater.loadAnimator(mMapView.getContext(), animSelectRes); animator.setTarget(v); animator.addListener(new AnimatorListenerAdapter() { @@ -721,6 +722,7 @@ public class MapboxMap { public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); selectMarker(marker); + v.setLayerType(View.LAYER_TYPE_NONE, null); } }); animator.start(); @@ -1298,11 +1300,19 @@ public class MapboxMap { } if (marker instanceof MarkerView) { - View viewMarker = mMarkerViewMap.get(marker); + final View viewMarker = mMarkerViewMap.get(marker); if (viewMarker != null) { int deselectAnimatorRes = ((MarkerView) marker).getDeselectAnimRes(); if (deselectAnimatorRes != 0) { + viewMarker.setLayerType(View.LAYER_TYPE_HARDWARE, null); Animator animator = AnimatorInflater.loadAnimator(mMapView.getContext(), deselectAnimatorRes); + animator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + super.onAnimationEnd(animation); + viewMarker.setLayerType(View.LAYER_TYPE_NONE, null); + } + }); animator.setTarget(viewMarker); animator.start(); } |