From 4cb2d4de51b11bfd4cf80121a6b3495fcd8eb948 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 14:23:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86bug=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E4=BA=86=E6=96=B0=E9=B2=9C=E4=BA=8B=E5=84=BF=E7=9A=84?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=20=E4=BF=AE=E6=94=B9=E4=BA=86marker=E5=8A=A8?= =?UTF-8?q?=E7=94=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/entity/MarkerNoveltyInfo.java | 10 ++++++ .../service/marker/MapMarkerManager.java | 36 +++++++++++++++---- 2 files changed, 39 insertions(+), 7 deletions(-) diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerNoveltyInfo.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerNoveltyInfo.java index 84157f6a84..cae02097cf 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerNoveltyInfo.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerNoveltyInfo.java @@ -63,6 +63,7 @@ public class MarkerNoveltyInfo { private String title; private String gasPrices; private boolean displayNavigation; + private String desplayHost = ""; private String styleType; public String getContent() { @@ -137,6 +138,14 @@ public class MarkerNoveltyInfo { this.gasPrices = gasPrices; } + public String getDesplayHost() { + return desplayHost; + } + + public void setDesplayHost(String desplayHost) { + this.desplayHost = desplayHost; + } + @Override public String toString() { return "ContentData{" + @@ -148,6 +157,7 @@ public class MarkerNoveltyInfo { ", title='" + title + '\'' + ", gasPrices='" + gasPrices + '\'' + ", displayNavigation=" + displayNavigation + + ", desplayHost='" + desplayHost + '\'' + ", styleType='" + styleType + '\'' + '}'; } 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 85172a947d..a95e912577 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 @@ -9,6 +9,8 @@ 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; @@ -229,9 +231,12 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag point.y -= WindowUtils.dip2px(mContext, 100f); MogoLatLng targetMogoLatLng = MarkerServiceHandler.getMapUIController().getLocationMogoLatLngInScreen(point); LatLng target = ObjectUtils.fromMogo2(targetMogoLatLng); - //使用TranslateAnimation,填写一个需要移动的目标点 - Animation animation = new TranslateAnimation(target); - animation.setInterpolator(new Interpolator() { + // 使用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) { @@ -241,11 +246,28 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag } } }); - //整个移动所需要的时间 - animation.setDuration(1000); - //设置动画 + + 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); + + // 设置动画 if (mogoMarker instanceof AMapMarkerWrapper) { - ((AMapMarkerWrapper) mogoMarker).getMarker().setAnimation(animation); + ((AMapMarkerWrapper) mogoMarker).getMarker().setAnimation(animationSet); ((AMapMarkerWrapper) mogoMarker).getMarker().startAnimation(); } } catch (Exception e) {