From ff9bb121bdd1153a701476a6f1c362c9c5b970f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Mon, 17 Feb 2020 16:58:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86bug=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E4=BA=86=E5=88=87=E6=8D=A2=E5=8D=A1=E7=89=87=E8=81=94?= =?UTF-8?q?=E5=8A=A8=E6=B0=94=E6=B3=A1=E5=8A=A8=E7=94=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/marker/MapMarkerManager.java | 63 ++++++------------- 1 file changed, 19 insertions(+), 44 deletions(-) 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 a95e912577..e2950a5043 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 @@ -1,20 +1,14 @@ package com.mogo.module.service.marker; import android.content.Context; -import android.graphics.Point; import android.os.Handler; import android.os.Looper; import android.text.TextUtils; -import android.view.animation.Interpolator; -import com.amap.api.maps.model.LatLng; 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.mogo.map.MogoLatLng; import com.mogo.map.impl.amap.marker.AMapMarkerWrapper; -import com.mogo.map.impl.amap.utils.ObjectUtils; import com.mogo.map.marker.IMogoMarker; import com.mogo.map.marker.IMogoMarkerClickListener; import com.mogo.map.marker.MogoMarkerOptions; @@ -35,7 +29,6 @@ import com.mogo.module.service.Utils; import com.mogo.module.service.datamanager.MogoDataHandler; import com.mogo.service.cardmanager.IMogoCardChangedListener; import com.mogo.service.connection.IMogoOnMessageListener; -import com.mogo.utils.WindowUtils; import com.mogo.utils.logger.Logger; import org.json.JSONArray; @@ -227,47 +220,29 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag if (alpha == 1) { try { - Point point = MarkerServiceHandler.getMapUIController().getLocationPointInScreen(mogoMarker.getPosition()); - point.y -= WindowUtils.dip2px(mContext, 100f); - MogoLatLng targetMogoLatLng = MarkerServiceHandler.getMapUIController().getLocationMogoLatLngInScreen(point); - LatLng target = ObjectUtils.fromMogo2(targetMogoLatLng); // 使用TranslateAnimation,填写一个需要移动的目标点 - AnimationSet animationSet = new AnimationSet(true); - Animation animationTranslate = new TranslateAnimation(target); - Animation animationScale = new ScaleAnimation(0.5f,2.5f,0.5f,2.5f); - - animationScale.setInterpolator(new Interpolator() { - @Override - public float getInterpolation(float input) { - if (input <= 0.5) { - return (float) (0.5f - 2.0 * (0.5 - input) * (0.5 - input)); - } else { - return (float) (0.5f - Math.sqrt((double) ((input - 0.5f) * (1.5f - input)))); - } - } - }); - - animationSet.setInterpolator(new Interpolator() { - @Override - public float getInterpolation(float input) { - if (input <= 0.5) { - return (float) (0.5f - 2.0 * (0.5 - input) * (0.5 - input)); - } else { - return (float) (0.5f - Math.sqrt((double) ((input - 0.5f) * (1.5f - input)))); - } - } - }); - - // 整个移动所需要的时间 - animationSet.setDuration(1000); - - // 添加动画集合 - animationSet.addAnimation(animationTranslate); - animationSet.addAnimation(animationScale); + ScaleAnimation animationScale = new ScaleAnimation(0.5f, 1.2f, 0.5f, 1.2f); + animationScale.setDuration(500); + animationScale.setFillMode(Animation.FILL_MODE_FORWARDS); // 设置动画 if (mogoMarker instanceof AMapMarkerWrapper) { - ((AMapMarkerWrapper) mogoMarker).getMarker().setAnimation(animationSet); + ((AMapMarkerWrapper) mogoMarker).getMarker().setAnimation(animationScale); + ((AMapMarkerWrapper) mogoMarker).getMarker().startAnimation(); + } + } catch (Exception e) { + Logger.e(TAG, e, "error."); + } + }else{ + try { + // 使用TranslateAnimation,填写一个需要移动的目标点 + ScaleAnimation animationScale = new ScaleAnimation(1.2f, 1f, 1.2f, 1f); + animationScale.setDuration(500); + animationScale.setFillMode(Animation.FILL_MODE_FORWARDS); + + // 设置动画 + if (mogoMarker instanceof AMapMarkerWrapper) { + ((AMapMarkerWrapper) mogoMarker).getMarker().setAnimation(animationScale); ((AMapMarkerWrapper) mogoMarker).getMarker().startAnimation(); } } catch (Exception e) {