summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobrun <tobrun@mapbox.com>2016-05-20 09:45:35 +0200
committerTobrun <tobrun@mapbox.com>2016-05-20 12:03:27 +0200
commitd2fdf4a4ac7ae678e194dab2770724624fa33e79 (patch)
tree7c557970f27e2497a17fb5796e138e10406ccd7f
parent952875a30c104b779f3563a27b4caf1a7b674662 (diff)
downloadqtlocation-mapboxgl-d2fdf4a4ac7ae678e194dab2770724624fa33e79.tar.gz
[android] #3276 - hardware accelerate animations
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java14
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();
}