diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/marker/AMapMarkerWrapper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/marker/AMapMarkerWrapper.java index c373965b87..8935812bcd 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/marker/AMapMarkerWrapper.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/marker/AMapMarkerWrapper.java @@ -10,7 +10,9 @@ import com.amap.api.maps.model.BitmapDescriptorFactory; import com.amap.api.maps.model.LatLng; import com.amap.api.maps.model.Marker; import com.amap.api.maps.model.MarkerOptions; +import com.amap.api.maps.model.animation.AlphaAnimation; import com.amap.api.maps.model.animation.Animation; +import com.amap.api.maps.model.animation.AnimationSet; import com.amap.api.maps.model.animation.ScaleAnimation; import com.amap.api.maps.model.animation.TranslateAnimation; import com.amap.api.maps.utils.overlay.MovingPointOverlay; @@ -382,6 +384,47 @@ public class AMapMarkerWrapper implements IMogoMarker, Observer { mMarker.startAnimation(); } + @Override + public void startScaleAnimationWithAlpha( float fromX, float toX, float fromY, float toY, float fromAlpha, float toAlpha, int duration, Interpolator interpolator, OnMarkerAnimationListener listener ) { + if ( isDestroyed() ) { + return; + } + + ScaleAnimation animationScale = new ScaleAnimation( fromX, toX, fromY, toY ); + animationScale.setFillMode( Animation.FILL_MODE_FORWARDS ); + + AlphaAnimation alphaAnimation = new AlphaAnimation( fromAlpha, toAlpha ); + alphaAnimation.setFillMode( Animation.FILL_MODE_FORWARDS ); + + AnimationSet animationSet = new AnimationSet( true ); + animationSet.setDuration( duration ); + animationSet.setInterpolator( interpolator); + animationSet.setAnimationListener( new Animation.AnimationListener() { + @Override + public void onAnimationStart() { + if ( isDestroyed() ) { + return; + } + if ( listener != null ) { + listener.onAnimStart(); + } + } + + @Override + public void onAnimationEnd() { + if ( isDestroyed() ) { + return; + } + if ( listener != null ) { + listener.onAnimEnd(); + } + } + } ); + + mMarker.setAnimation( animationSet ); + mMarker.startAnimation(); + } + @Override public void startJumpAnimation( float high, long duration, Interpolator interpolator, OnMarkerAnimationListener listener ) { if ( isDestroyed() || high <= 0.0f || interpolator == null || duration < 0 ) { diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarker.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarker.java index 7cb519b426..8301124d8b 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarker.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarker.java @@ -267,9 +267,33 @@ public interface IMogoMarker { Interpolator interpolator, OnMarkerAnimationListener listener ); + /** + * 缩放动画 + * + * @param fromX + * @param toX + * @param fromY + * @param toY + * @param fromAlpha + * @param toAlpha + * @param duration + * @param interpolator + * @param listener + */ + void startScaleAnimationWithAlpha( float fromX, + float toX, + float fromY, + float toY, + float fromAlpha, + float toAlpha, + int duration, + Interpolator interpolator, + OnMarkerAnimationListener listener ); + /** * 弹跳动画 + * * @param high * @param duration * @param interpolator @@ -278,7 +302,7 @@ public interface IMogoMarker { void startJumpAnimation( float high, long duration, Interpolator interpolator, - OnMarkerAnimationListener listener); + OnMarkerAnimationListener listener ); /** * 是否是否可点击 diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java index 9082bcadea..996f4b5dee 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java @@ -713,6 +713,7 @@ public class MogoServices implements IMogoMapListener, break; case ACC_STATUS: if ( isTrue ) { + initLocationServiceProcess( mContext ); mADASController.showADAS(); } break; diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java index 255d07c4c2..0e71c6c88e 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java @@ -388,7 +388,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, return; } IMogoMarker marker = drawMapMarker( entity, ServiceConst.MARKER_Z_INDEX_HIGH ); - marker.startScaleAnimation( 0, 1.2f, 0, 1.2f, 300, new AccelerateInterpolator(), new OnMarkerAnimationListener() { + marker.startScaleAnimationWithAlpha( 0, 1.2f, 0, 1.2f, 0f, 1f,300, new AccelerateInterpolator(), new OnMarkerAnimationListener() { @Override public void onAnimStart() { Logger.d( TAG, " onAnimStart ---1----> " ); diff --git a/modules/mogo-module-service/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-service/src/main/res/values-xhdpi/dimens.xml index 5cb9635b13..817029fc7c 100644 --- a/modules/mogo-module-service/src/main/res/values-xhdpi/dimens.xml +++ b/modules/mogo-module-service/src/main/res/values-xhdpi/dimens.xml @@ -1,7 +1,7 @@ 20dp - 8dp + 4dp 100px 117px 60px diff --git a/modules/mogo-module-service/src/main/res/values/dimens.xml b/modules/mogo-module-service/src/main/res/values/dimens.xml index 6faf47f1e0..32f8357c6c 100644 --- a/modules/mogo-module-service/src/main/res/values/dimens.xml +++ b/modules/mogo-module-service/src/main/res/values/dimens.xml @@ -1,7 +1,7 @@ 16dp - 4dp + 2dp 56px 65px 35px