From f6acddfc2112873efd342808bc18ace33bd5669a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Thu, 17 Dec 2020 16:29:42 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E4=BA=86=E9=AB=98?= =?UTF-8?q?=E5=BE=B7=E5=9C=B0=E5=9B=BE=E7=9A=84=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/mogo-module-smp/build.gradle | 1 + .../small/map/SmallMapDirectionView.java | 59 +++++++++++++++---- 2 files changed, 48 insertions(+), 12 deletions(-) diff --git a/modules/mogo-module-smp/build.gradle b/modules/mogo-module-smp/build.gradle index 888a054935..b4842f190f 100644 --- a/modules/mogo-module-smp/build.gradle +++ b/modules/mogo-module-smp/build.gradle @@ -40,6 +40,7 @@ dependencies { implementation rootProject.ext.dependencies.arouter implementation rootProject.ext.dependencies.amapnavi3dmap + implementation rootProject.ext.dependencies.amaplocation annotationProcessor rootProject.ext.dependencies.aroutercompiler if (Boolean.valueOf(RELEASE)) { diff --git a/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapDirectionView.java b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapDirectionView.java index 1eaedef6d3..529a290183 100644 --- a/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapDirectionView.java +++ b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapDirectionView.java @@ -8,6 +8,8 @@ import android.widget.ImageView; import androidx.annotation.Nullable; +import com.amap.api.location.AMapLocationClient; +import com.amap.api.location.AMapLocationClientOption; import com.amap.api.maps.AMap; import com.amap.api.maps.CameraUpdate; import com.amap.api.maps.CameraUpdateFactory; @@ -20,8 +22,8 @@ import com.amap.api.maps.model.MyLocationStyle; import com.mogo.module.common.view.RoundLayout; import com.mogo.module.small.map.animation.DirectionRotateAnimation; +import java.io.IOException; import java.io.InputStream; -import java.net.URL; /** * 小地图的方向View @@ -37,6 +39,8 @@ public class SmallMapDirectionView extends RoundLayout { private UiSettings mUiSettings; private CameraUpdate mCameraUpdate; private MyLocationStyle myLocationStyle; + private AMapLocationClient mLocationClient; + private AMapLocationClientOption mLocationClientOption; private DirectionRotateAnimation mRotateAnimation; private int lastAngle = 0; @@ -63,28 +67,59 @@ public class SmallMapDirectionView extends RoundLayout { mTextureMapView.onCreate(null); mAMap = mTextureMapView.getMap(); - mAMap.setMapType(AMap.MAP_TYPE_NIGHT);//夜景地图,aMap是地图控制器对象。 - URL small_map_style = getClass().getResource("/assets/small_map_style.data"); - URL small_map_style_extra = getClass().getResource("/assets/small_map_style_extra.data"); + // 设置自定义地图样式 + try { + byte[] buffer1 = null; + byte[] buffer2 = null; + InputStream is1 = null; + InputStream is2 = null; + try { + is1 = context.getAssets().open("small_map_style.data"); + int lenght1 = is1.available(); + buffer1 = new byte[lenght1]; + is1.read(buffer1); + is2 = context.getAssets().open("small_map_style_extra.data"); + int lenght2 = is2.available(); + buffer2 = new byte[lenght2]; + is2.read(buffer2); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + if (is1 != null) + is1.close(); + if (is2 != null) + is2.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } - mAMap.setCustomMapStyle(new CustomMapStyleOptions() - .setEnable(true) - .setStyleDataPath(small_map_style.getPath()) - .setStyleExtraPath(small_map_style_extra.getPath()) - ); + CustomMapStyleOptions customMapStyleOptions = new CustomMapStyleOptions(); + customMapStyleOptions.setStyleData(buffer1); + customMapStyleOptions.setStyleExtraData(buffer2); + customMapStyleOptions.setEnable(true); + mAMap.setCustomMapStyle(customMapStyleOptions); + } catch (Exception e) { + e.printStackTrace(); + } - myLocationStyle = new MyLocationStyle();//初始化定位蓝点样式类myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);//连续定位、且将视角移动到地图中心点,定位点依照设备方向旋转,并且会跟随设备移动。(1秒1次定位)如果不设置myLocationType,默认也会执行此种模式。 - myLocationStyle.interval(2000); //设置连续定位模式下的定位间隔,只在连续定位模式下生效,单次定位模式下不会生效。单位为毫秒。 + // 设置当前位置的样式 + myLocationStyle = new MyLocationStyle();//初始化定位蓝点样式类 + myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);//连续定位、且将视角移动到地图中心点,定位点依照设备方向旋转,并且会跟随设备移动。(1秒1次定位)如果不设置myLocationType,默认也会执行此种模式。 + myLocationStyle.interval(1000); //设置连续定位模式下的定位间隔,只在连续定位模式下生效,单次定位模式下不会生效。单位为毫秒。 BitmapDescriptor location = BitmapDescriptorFactory.fromResource(R.drawable.module_small_map_view_my_location_logo); myLocationStyle.myLocationIcon(location); mAMap.setMyLocationStyle(myLocationStyle);//设置定位蓝点的Style mAMap.setMyLocationEnabled(true);// 设置为true表示启动显示定位蓝点,false表示隐藏定位蓝点并不进行定位,默认是false。 //设置希望展示的地图缩放级别 - mCameraUpdate = CameraUpdateFactory.zoomTo(12); + mCameraUpdate = CameraUpdateFactory.zoomTo(17); mAMap.moveCamera(mCameraUpdate); + + // 设置地图的样式 mUiSettings = mAMap.getUiSettings(); mUiSettings.setZoomControlsEnabled(false);// 地图缩放级别的交换按钮 // mUiSettings.setZoomGesturesEnabled(false);// 缩放手势 From 64a156657e44a944b80e3641ea9f4d9c37d8f2aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Fri, 18 Dec 2020 17:53:54 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=AF=BC=E8=88=AA?= =?UTF-8?q?=E5=9C=B0=E5=9B=BE=E5=AE=8C=E6=88=90=E4=BA=86=E5=9C=86=E5=BD=A2?= =?UTF-8?q?=E5=B0=8F=E5=9C=B0=E5=9B=BE=E7=9A=84=E5=8A=9F=E8=83=BD=E5=BC=80?= =?UTF-8?q?=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/AndroidManifest.xml | 2 +- .../src/main/assets/small_map_style.data | Bin 141822 -> 141822 bytes .../main/assets/small_map_style_extra.data | Bin 2734 -> 3118 bytes .../small/map/SmallMapDirectionView.java | 173 ++++++++++++------ .../module/small/map/SmallMapService.java | 9 - .../small/map/utils/MapAssetStyleUtils.java | 60 ++++++ .../icon_module_small_map_four_corners.png | Bin 0 -> 1017 bytes .../main/res/layout/module_small_map_view.xml | 4 +- 8 files changed, 180 insertions(+), 68 deletions(-) create mode 100644 modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/utils/MapAssetStyleUtils.java create mode 100644 modules/mogo-module-smp/src/main/res/drawable-xhdpi/icon_module_small_map_four_corners.png diff --git a/modules/mogo-module-smp/src/main/AndroidManifest.xml b/modules/mogo-module-smp/src/main/AndroidManifest.xml index 3d0a81ab9f..32b078729c 100644 --- a/modules/mogo-module-smp/src/main/AndroidManifest.xml +++ b/modules/mogo-module-smp/src/main/AndroidManifest.xml @@ -6,6 +6,6 @@ + android:process=":smallMap"/> \ No newline at end of file diff --git a/modules/mogo-module-smp/src/main/assets/small_map_style.data b/modules/mogo-module-smp/src/main/assets/small_map_style.data index 75195b39a29c1b139f8e5ce6b0e9c22c01de40b3..412a2ab911461b5fab38b7083914ac978c20bd0e 100644 GIT binary patch literal 141822 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 ZQ81`#?TB~o*Db{WYZu`Js-^Rx)BZ|r6;l8J diff --git a/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapDirectionView.java b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapDirectionView.java index 529a290183..3c8676cefa 100644 --- a/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapDirectionView.java +++ b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapDirectionView.java @@ -1,7 +1,9 @@ package com.mogo.module.small.map; import android.content.Context; +import android.graphics.BitmapFactory; import android.util.AttributeSet; +import android.util.Log; import android.view.LayoutInflater; import android.view.animation.LinearInterpolator; import android.widget.ImageView; @@ -17,10 +19,14 @@ import com.amap.api.maps.TextureMapView; import com.amap.api.maps.UiSettings; import com.amap.api.maps.model.BitmapDescriptor; import com.amap.api.maps.model.BitmapDescriptorFactory; +import com.amap.api.maps.model.CameraPosition; import com.amap.api.maps.model.CustomMapStyleOptions; import com.amap.api.maps.model.MyLocationStyle; +import com.amap.api.navi.AMapNaviView; +import com.amap.api.navi.AMapNaviViewOptions; import com.mogo.module.common.view.RoundLayout; import com.mogo.module.small.map.animation.DirectionRotateAnimation; +import com.mogo.module.small.map.utils.MapAssetStyleUtils; import java.io.IOException; import java.io.InputStream; @@ -34,7 +40,7 @@ import java.io.InputStream; public class SmallMapDirectionView extends RoundLayout { private ImageView mIvMapBorder; - private TextureMapView mTextureMapView; + private AMapNaviView mAMapNaviView; private AMap mAMap; private UiSettings mUiSettings; private CameraUpdate mCameraUpdate; @@ -63,73 +69,127 @@ public class SmallMapDirectionView extends RoundLayout { LayoutInflater.from(context).inflate(R.layout.module_small_map_view, this); mIvMapBorder = findViewById(R.id.ivMapBorder); - mTextureMapView = findViewById(R.id.textureMapView); + mAMapNaviView = findViewById(R.id.aMapNaviView); + mAMapNaviView.onCreate(null); + // 车头朝上 + mAMapNaviView.setNaviMode(AMapNaviView.CAR_UP_MODE); + mAMap = mAMapNaviView.getMap(); - mTextureMapView.onCreate(null); - mAMap = mTextureMapView.getMap(); + // 导航地图 + AMapNaviViewOptions options = mAMapNaviView.getViewOptions(); + //设置导航界面UI是否显示。 + if (options != null) { + // 设置是否开启自动黑夜模式切换,默认为false,不自动切换 + options.setAutoNaviViewNightMode(false); + // 设置6秒后是否自动锁车 + options.setAutoLockCar(true); + // 设置路线上的摄像头气泡是否显示 + options.setCameraBubbleShow(false); + // 设置路线相关的配置属性,如:路线的路况颜色,路线上是否显示摄像头气泡等。 + // options.setRouteOverlayOptions( MapStyleUtils.getRouteOverlayOptions() ); + // 设置自车的图片对象 + options.setCarBitmap(BitmapFactory.decodeResource(getContext().getResources(), + R.drawable.module_small_map_view_my_location_logo)); + // 设置罗盘位图对象 + options.setFourCornersBitmap(BitmapFactory.decodeResource(getContext().getResources(), + R.drawable.icon_module_small_map_four_corners)); + // 设置指南针图标否在导航界面显示,默认显示。true,显示;false,隐藏。 + options.setCompassEnabled(false); + // 黑夜模式 + options.setNaviNight(true); + //设置路况光柱条是否显示(只适用于驾车导航,需要联网)。 + options.setTrafficBarEnabled(false); + // 设置[实时交通图层开关按钮]是否显示(只适用于驾车导航,需要联网)。 + options.setTrafficLayerEnabled(false); + // 设置导航界面是否显示路线全览按钮。 + options.setRouteListButtonShow(false); + // 设置屏幕是否常亮,默认开启 + options.setScreenAlwaysBright(false); + // 设置交通播报是否打开(只适用于驾车导航,需要联网)。 + options.setTrafficInfoUpdateEnabled(false); + // 设置摄像头播报是否打开(只适用于驾车导航)。 + options.setCameraInfoUpdateEnabled(false); + // 设置菜单按钮是否在导航界面显示。 + options.setSettingMenuEnabled(false); + // 设置是否绘制显示交通路况的线路(彩虹线),拥堵-红色,畅通-绿色,缓慢-黄色,未知-蓝色。默认不绘制彩虹线。 + options.setTrafficLine(false); + // 设置是否绘制牵引线(当前位置到目的地的指引线)。默认不绘制牵引线。 + options.setLeaderLineEnabled(-1); + // 设置导航界面UI是否显示。 + options.setLayoutVisible(false); + // 设置是否自动画路 + options.setAutoDrawRoute(false); + // 设置是否显示路口放大图(实景图) + options.setRealCrossDisplayShow(false); + // 设置是否显示路口放大图(路口模型图) + options.setModeCrossDisplayShow(false); + // 设置是否显示道路信息view + options.setLaneInfoShow(false); + // 设置是否自动改变缩放等级 + options.setAutoChangeZoom(false); + // 设置是否自动全览模式,即在算路成功后自动进入全览模式 + options.setAutoDisplayOverview(false); + // 设置路线转向箭头隐藏和显示 + options.setNaviArrowVisible(false); + // 通过路线是否自动置灰,仅支持驾车导航 + options.setAfterRouteAutoGray(false); + //options.setZoom(((int) 9)); + //options.setPointToCenter(0.7D, 0.5D); + // 2D模式 + options.setTilt(0); + mAMapNaviView.setViewOptions(options); + } + // 设置电子眼所在路线的可见性 + mAMapNaviView.setRouteOverlayVisible(false); + // 设置是否隐藏AMapNaviView上的CarOverlay,包括自车、罗盘 + mAMapNaviView.setCarOverlayVisible(true); + mAMapNaviView.setViewOptions(options); - // 设置自定义地图样式 - try { - byte[] buffer1 = null; - byte[] buffer2 = null; - InputStream is1 = null; - InputStream is2 = null; - try { - is1 = context.getAssets().open("small_map_style.data"); - int lenght1 = is1.available(); - buffer1 = new byte[lenght1]; - is1.read(buffer1); - is2 = context.getAssets().open("small_map_style_extra.data"); - int lenght2 = is2.available(); - buffer2 = new byte[lenght2]; - is2.read(buffer2); - } catch (IOException e) { - e.printStackTrace(); - } finally { - try { - if (is1 != null) - is1.close(); - if (is2 != null) - is2.close(); - } catch (IOException e) { - e.printStackTrace(); + //设置希望展示的地图缩放级别 + mCameraUpdate = CameraUpdateFactory.zoomTo(12); + mAMap.moveCamera(mCameraUpdate); + + // 设置当前位置的样式 +// myLocationStyle = new MyLocationStyle();//初始化定位蓝点样式类 +// myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);//连续定位、且将视角移动到地图中心点,定位点依照设备方向旋转,并且会跟随设备移动。(1秒1次定位)如果不设置myLocationType,默认也会执行此种模式。 +// myLocationStyle.interval(1000); //设置连续定位模式下的定位间隔,只在连续定位模式下生效,单次定位模式下不会生效。单位为毫秒。 +// BitmapDescriptor location = BitmapDescriptorFactory.fromResource(R.drawable.module_small_map_view_my_location_logo); +// myLocationStyle.myLocationIcon(location); +// mAMap.setMyLocationStyle(myLocationStyle);//设置定位蓝点的Style +// mAMap.setMyLocationEnabled(true);// 设置为true表示启动显示定位蓝点,false表示隐藏定位蓝点并不进行定位,默认是false。 + + mAMap.setOnCameraChangeListener(new AMap.OnCameraChangeListener() { + @Override + public void onCameraChange(CameraPosition cameraPosition) { + if (cameraPosition != null) { + //Log.w("onCameraChange", "cameraPosition=" + cameraPosition.bearing); + changeAngle((int) cameraPosition.bearing); } } - CustomMapStyleOptions customMapStyleOptions = new CustomMapStyleOptions(); - customMapStyleOptions.setStyleData(buffer1); - customMapStyleOptions.setStyleExtraData(buffer2); - customMapStyleOptions.setEnable(true); - mAMap.setCustomMapStyle(customMapStyleOptions); - } catch (Exception e) { - e.printStackTrace(); - } + @Override + public void onCameraChangeFinish(CameraPosition cameraPosition) { - // 设置当前位置的样式 - myLocationStyle = new MyLocationStyle();//初始化定位蓝点样式类 - myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);//连续定位、且将视角移动到地图中心点,定位点依照设备方向旋转,并且会跟随设备移动。(1秒1次定位)如果不设置myLocationType,默认也会执行此种模式。 - myLocationStyle.interval(1000); //设置连续定位模式下的定位间隔,只在连续定位模式下生效,单次定位模式下不会生效。单位为毫秒。 - BitmapDescriptor location = BitmapDescriptorFactory.fromResource(R.drawable.module_small_map_view_my_location_logo); - myLocationStyle.myLocationIcon(location); - mAMap.setMyLocationStyle(myLocationStyle);//设置定位蓝点的Style - mAMap.setMyLocationEnabled(true);// 设置为true表示启动显示定位蓝点,false表示隐藏定位蓝点并不进行定位,默认是false。 - - //设置希望展示的地图缩放级别 - mCameraUpdate = CameraUpdateFactory.zoomTo(17); - mAMap.moveCamera(mCameraUpdate); + } + }); + // 关闭地图文字标注 + mAMap.showMapText(false); // 设置地图的样式 mUiSettings = mAMap.getUiSettings(); mUiSettings.setZoomControlsEnabled(false);// 地图缩放级别的交换按钮 -// mUiSettings.setZoomGesturesEnabled(false);// 缩放手势 -// mUiSettings.setScrollGesturesEnabled(false);// 滑动手势 -// mUiSettings.setRotateGesturesEnabled(false);// 旋转手势 -// mUiSettings.setTiltGesturesEnabled(false);// 倾斜手势 mUiSettings.setAllGesturesEnabled(false);// 所有手势 mUiSettings.setMyLocationButtonEnabled(false); // 显示默认的定位按钮 mUiSettings.setLogoBottomMargin(-150); //设置Logo下边界距离屏幕底部的边距,设置为负值即可 + + CustomMapStyleOptions customMapStyleOptions = new CustomMapStyleOptions(); + customMapStyleOptions.setStyleData(MapAssetStyleUtils.getAssetsStyle(context)); + customMapStyleOptions.setStyleExtraData(MapAssetStyleUtils.getAssetsExtraStyle(context)); + customMapStyleOptions.setEnable(true); + mAMap.setCustomMapStyle(customMapStyleOptions); + } @@ -139,9 +199,10 @@ public class SmallMapDirectionView extends RoundLayout { * @param angle 角度 0 - 359度旋转,相对于自身中心位置 */ public void changeAngle(int angle) { - int tempAngle = angle; - if (angle <= 180) { - tempAngle = angle; + int tempAngle = 360 - angle; + + if (tempAngle <= 180) { + tempAngle = tempAngle; } else { tempAngle = -(360 - tempAngle); } diff --git a/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapService.java b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapService.java index f50a457f25..5841270767 100644 --- a/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapService.java +++ b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapService.java @@ -88,15 +88,6 @@ public class SmallMapService extends Service { mSmallMapDirectionView = mWindowManagerView.findViewById(R.id.smallMapDirectionView); - - mSmallMapDirectionView.postDelayed(new Runnable() { - @Override - public void run() { - Random random = new Random(); - mSmallMapDirectionView.changeAngle(random.nextInt(360)); - } - }, 1000); - } diff --git a/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/utils/MapAssetStyleUtils.java b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/utils/MapAssetStyleUtils.java new file mode 100644 index 0000000000..4f640ea613 --- /dev/null +++ b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/utils/MapAssetStyleUtils.java @@ -0,0 +1,60 @@ +package com.mogo.module.small.map.utils; + +import android.content.Context; + +import java.io.IOException; +import java.io.InputStream; + +/** + * @author donghongyu + * @date 12/18/20 5:37 PM + */ +public class MapAssetStyleUtils { + + public static byte[] getAssetsStyle(Context context) { + byte[] buffer1 = null; + InputStream is1 = null; + try { + is1 = context.getResources().getAssets().open("small_map_style.data"); + int lenght1 = is1.available(); + buffer1 = new byte[lenght1]; + is1.read(buffer1); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + if (is1 != null) { + is1.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + return buffer1; + } + + + public static byte[] getAssetsExtraStyle(Context context) { + byte[] buffer1 = null; + InputStream is1 = null; + try { + is1 = context.getResources().getAssets().open("small_map_style_extra.data"); + int lenght1 = is1.available(); + buffer1 = new byte[lenght1]; + is1.read(buffer1); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + if (is1 != null) { + is1.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + return buffer1; + } + + +} diff --git a/modules/mogo-module-smp/src/main/res/drawable-xhdpi/icon_module_small_map_four_corners.png b/modules/mogo-module-smp/src/main/res/drawable-xhdpi/icon_module_small_map_four_corners.png new file mode 100644 index 0000000000000000000000000000000000000000..91e02323a8eb1e0d7b2f81bbafe238b702a1fb87 GIT binary patch literal 1017 zcmZ`&&x_MQ6n<&DORX$|9_;QZWY9ynlJ}kGaC0MXS>{0G^x&ICuu|n?VQP0j5=eA434; z6~I~V^~ZZEON{ZLJ2DKo$l@XtgjLA1NPrwWPA9Rz;tNasxebMg1E8@RAU_wD%z18+ zU7zO{ahVgpO|E|i$bGf92XtWEQ7q!f<{sI_a_D%R0BWeP(81IcLucX!O4yVlhQeYF zBT0-X^ifk97(KB~d@Np*t8!J+N}?#L{@zIG>$eg)dumE!N<9Uk*=#1yF3ZHuU8nO5_$`8 zud3+CL{``)6XM_ZObhd#BS{L%vLl - From 9d05b0e027d7731d94346c795f3f11e520c1abc5 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Fri, 18 Dec 2020 18:33:52 +0800 Subject: [PATCH 3/6] opt --- .../module_camera_real_time_traffic.png | Bin 0 -> 15221 bytes .../module_camera_real_time_traffic.png | Bin 14393 -> 15221 bytes .../extensions/entrance/EntranceFragment.java | 1 + .../live/CameraLiveGSYVideoView.java | 29 +---- .../utils/CameraLiveNoticeHelper.java | 116 +++++++++++------- .../module_camera_normal_traffic.png | Bin 0 -> 5264 bytes .../module_camera_normal_traffic.png | Bin 0 -> 5264 bytes .../module_camera_real_time_traffic.png | Bin 14393 -> 0 bytes 8 files changed, 77 insertions(+), 69 deletions(-) create mode 100644 modules/mogo-module-common/src/main/res/drawable-mdpi/module_camera_real_time_traffic.png create mode 100644 modules/mogo-module-extensions/src/main/res/drawable-mdpi/module_camera_normal_traffic.png create mode 100644 modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_camera_normal_traffic.png delete mode 100644 modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_camera_real_time_traffic.png diff --git a/modules/mogo-module-common/src/main/res/drawable-mdpi/module_camera_real_time_traffic.png b/modules/mogo-module-common/src/main/res/drawable-mdpi/module_camera_real_time_traffic.png new file mode 100644 index 0000000000000000000000000000000000000000..bb7e78c0e02e0a0b4137a7bfdd5c53cf40a8200f GIT binary patch literal 15221 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 { -// @Override -// public void onSuccess(V2XLivePushVoRes result) { -// Logger.d(TAG, "播放器:" + result); -// } -// -// @Override -// public void onFail(String msg) { -// Logger.e(TAG, "播放器:" + msg); -// } -// }, carLiveInfo.getVideoSn(), 1); - } catch (Exception e) { e.printStackTrace(); } @@ -196,10 +173,6 @@ public class CameraLiveGSYVideoView extends LiveRoundLayout implements IMogoSkin protected void onDetachedFromWindow() { stopLive(mLiveUrl); mLoading.setVisibility(VISIBLE); - // 反注册语音交互 -// V2XVoiceManager.INSTANCE -// .unRegisterWakeCmd(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_REFRESH_CAR_LIVE) -// .unRegisterUnWakeVoice(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_REFRESH_LIVE_UN_WAKEUP); super.onDetachedFromWindow(); } diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/CameraLiveNoticeHelper.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/CameraLiveNoticeHelper.java index d796926105..89cb188fba 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/CameraLiveNoticeHelper.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/CameraLiveNoticeHelper.java @@ -22,6 +22,8 @@ import com.mogo.module.extensions.live.ExtensionServiceManager; import com.mogo.module.extensions.live.PushDataType; import com.mogo.service.connection.IMogoOnWebSocketMessageListener; import com.mogo.service.connection.WebSocketMsgType; +import com.mogo.service.statusmanager.IMogoStatusChangedListener; +import com.mogo.service.statusmanager.StatusDescriptor; import com.mogo.utils.UiThreadHandler; import com.mogo.utils.logger.Logger; @@ -34,17 +36,15 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener { -// mCloudRoadData = new CloudRoadData(); -//// mCloudRoadData.setRtmpUrl("rtmp://58.200.131.2:1935/livetv/hunantv"); -// mCloudRoadData.setRtmpUrl("http://video.zhidaozhixing.com/live/rec_12_22.flv"); -// -// mCloudRoadData.setLat(39.969089); -// mCloudRoadData.setLon(116.418009); -// -//// CameraLiveManager.getInstance().init(mCloudRoadData); -// addCameraMarker(mCloudRoadData); -// }, 2_000); -// } + public void release() { + MogoApisHandler.getInstance().getApis().getWebSocketManagerApi(mContext).unregisterOnWebSocketMessageListener(this); + } + public void enterVrMode() { + Logger.d(TAG, "enterVrMode==="); + isVrMode = true; } public void exitVrMode() { Logger.d(TAG, "退出vr模式==="); -// removeCameraMarker(); -// isFirst = false; - MogoApisHandler.getInstance().getApis().getWebSocketManagerApi(mContext).unregisterOnWebSocketMessageListener(this); + isVrMode = false; } /** * PushRoadConditionDrawer + * vr模式 * * @param roadData */ - private void addCameraMarker(CloudRoadData roadData) { - Logger.d(TAG, "addCameraMarker --lat = " + roadData.getLat() + "--lon =" + roadData.getLon()); + private void addVrCameraMarker(CloudRoadData roadData) { + Logger.d(TAG, "addVrCameraMarker --lat = " + roadData.getLat() + "--lon =" + roadData.getLon()); + removeCameraMarker(); MogoMarkerOptions options = new MogoMarkerOptions() .object(roadData) .latitude(roadData.getLat()) @@ -109,6 +102,29 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener>>>mCurretnUuid = " + mCurretnUuid + ">>>mCloudRoadData.getUuid() = " + mCloudRoadData.getUuid()); + if (mCurretnUuid != null && mCurretnUuid.equals(mCloudRoadData.getUuid())) { + Log.d(TAG, "isLoadVr = " + isLoadVr + "....isLoadNormal = " + isLoadNormal); + if (isVrMode) { + if (!isLoadVr) { + addVrCameraMarker(mCloudRoadData); + isLoadVr = true; + isLoadNormal = false; + } + } else { + if (!isLoadNormal) { + addNormalCameraMarker(mCloudRoadData); + isLoadNormal = true; + isLoadVr = false; + } + } } else { - removeCameraMarker(); - addCameraMarker(mCloudRoadData); - mCurrentlat = mCloudRoadData.getLat(); - mCurrentlon = mCloudRoadData.getLon(); + if (isVrMode) { + addVrCameraMarker(mCloudRoadData); + } else { + addNormalCameraMarker(mCloudRoadData); + } + mCurretnUuid = mCloudRoadData.getUuid(); } } else { //删除marker - Logger.e(TAG, "onMsgReceived mCloudRoadData == null "); - UiThreadHandler.postDelayed(() -> { - removeCameraMarker(); - }, 1_000); + removeCameraMarker(); + +// Log.e(TAG, "onMsgReceived mCloudRoadData == null "); +// UiThreadHandler.postDelayed(() -> { +// +// }, 1_000); } } else { - Log.e(TAG, "onMsgReceived obj == null "); + Logger.e(TAG, "onMsgReceived obj == null "); } } diff --git a/modules/mogo-module-extensions/src/main/res/drawable-mdpi/module_camera_normal_traffic.png b/modules/mogo-module-extensions/src/main/res/drawable-mdpi/module_camera_normal_traffic.png new file mode 100644 index 0000000000000000000000000000000000000000..d98b71a08c3958b3e8086da675af3991159c3513 GIT binary patch literal 5264 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 literal 0 HcmV?d00001 diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_camera_normal_traffic.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_camera_normal_traffic.png new file mode 100644 index 0000000000000000000000000000000000000000..d98b71a08c3958b3e8086da675af3991159c3513 GIT binary patch literal 5264 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 literal 0 HcmV?d00001 diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_camera_real_time_traffic.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_camera_real_time_traffic.png deleted file mode 100644 index 3f41ce425208aaee64635d8f25f426a5decd634a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14393 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 Date: Fri, 18 Dec 2020 19:03:18 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B0=8F=E5=9C=B0?= =?UTF-8?q?=E5=9B=BE=E7=9A=84=E6=8F=8F=E8=BE=B9=E5=84=BF=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=B5=8B=E8=AF=95=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../drawable/bg_module_small_map_view_border.xml | 14 ++++++-------- .../src/main/res/raw/scenario_road_event_data.json | 8 ++++---- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/modules/mogo-module-smp/src/main/res/drawable/bg_module_small_map_view_border.xml b/modules/mogo-module-smp/src/main/res/drawable/bg_module_small_map_view_border.xml index 46982d07c3..1537b40512 100644 --- a/modules/mogo-module-smp/src/main/res/drawable/bg_module_small_map_view_border.xml +++ b/modules/mogo-module-smp/src/main/res/drawable/bg_module_small_map_view_border.xml @@ -2,25 +2,23 @@ - + - + android:angle="315" + android:endColor="#284190" + android:startColor="#7997ff" + android:type="linear" /> - + diff --git a/modules/mogo-module-v2x/src/main/res/raw/scenario_road_event_data.json b/modules/mogo-module-v2x/src/main/res/raw/scenario_road_event_data.json index cf4d9e9c07..ce7f84f44f 100644 --- a/modules/mogo-module-v2x/src/main/res/raw/scenario_road_event_data.json +++ b/modules/mogo-module-v2x/src/main/res/raw/scenario_road_event_data.json @@ -5,8 +5,8 @@ "location":{ "address":"北三环环球贸易中心", "angle":270, - "lat":39.966668, - "lon":116.411211 + "lat":39.969088, + "lon":116.41808 }, "noveltyInfo":{ "addr":"北三环环球贸易中心", @@ -27,8 +27,8 @@ "location":{ "address":"北三环环球贸易中心", "angle":270, - "lat":39.966668, - "lon":116.411211 + "lat":39.969088, + "lon":116.41808 }, "poiType":"10003", "type":"CARD_TYPE_ROAD_CONDITION", From b22505ddbb2cc35b42d3ebad9805854e8d87d17e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Fri, 18 Dec 2020 19:13:38 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/res/raw/scenario_fatigue_driving_data.json | 8 ++++---- .../main/res/raw/scenario_push_animation_event_data.json | 4 ++-- .../src/main/res/raw/scenario_push_cross_crash.json | 4 ++-- .../src/main/res/raw/scenario_push_event_data.json | 8 ++++---- .../src/main/res/raw/scenario_push_live_event_data.json | 8 ++++---- .../src/main/res/raw/scenario_push_vr_barrier_data.json | 4 ++-- .../res/raw/scenario_push_vr_behind_danger_car_data.json | 4 ++-- .../src/main/res/raw/scenario_push_vr_car_break_data.json | 4 ++-- .../res/raw/scenario_push_vr_event_data_shuangshan.json | 4 ++-- .../main/res/raw/scenario_push_vr_event_data_yongdu.json | 4 ++-- .../main/res/raw/scenario_push_vr_hehind_vip_data.json | 4 ++-- .../main/res/raw/scenario_push_vr_reverse_car_data.json | 4 ++-- .../res/raw/scenario_push_vr_vip_light_change_data.json | 4 ++-- .../res/raw/scenario_push_vr_xingren_yujing_data.json | 4 ++-- .../src/main/res/raw/scenario_seek_help.json | 4 ++-- 15 files changed, 36 insertions(+), 36 deletions(-) diff --git a/modules/mogo-module-v2x/src/main/res/raw/scenario_fatigue_driving_data.json b/modules/mogo-module-v2x/src/main/res/raw/scenario_fatigue_driving_data.json index f101b621e1..e6612d5f41 100644 --- a/modules/mogo-module-v2x/src/main/res/raw/scenario_fatigue_driving_data.json +++ b/modules/mogo-module-v2x/src/main/res/raw/scenario_fatigue_driving_data.json @@ -14,11 +14,11 @@ "zoom": true, "zoomScale": 15, "location": { - "lat":39.966668, - "lon":116.411211 + "lat":39.969088, + "lon":116.41808 }, - "lat":39.966668, - "lon":116.411211, + "lat":39.969088, + "lon":116.41808, "userHead": "https://yycp-static-1255510688.cos.ap-beijing.myqcloud.com/defaultUserHeadImg/5.png", "msgImgUrl": "https://upload.jianshu.io/users/upload_avatars/7663825/7c28763e-002b-4e89-8dea-5b8da210ef2c.jpg" } \ No newline at end of file diff --git a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_animation_event_data.json b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_animation_event_data.json index 4181815172..fda51992cb 100644 --- a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_animation_event_data.json +++ b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_animation_event_data.json @@ -13,8 +13,8 @@ "zoom": true, "zoomScale": 15, "location": { - "lat": 39.9754100000, - "lon": 116.4178276100 + "lat":39.969088, + "lon":116.41808 }, "userHead": "https://yycp-static-1255510688.cos.ap-beijing.myqcloud.com/defaultUserHeadImg/5.png", "msgImgUrl": "https://upload.jianshu.io/users/upload_avatars/7663825/7c28763e-002b-4e89-8dea-5b8da210ef2c.jpg" diff --git a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_cross_crash.json b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_cross_crash.json index 180b9688a1..57942107bb 100644 --- a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_cross_crash.json +++ b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_cross_crash.json @@ -13,8 +13,8 @@ "zoom": true, "zoomScale": 15, "location": { - "lat": 39.9754100000, - "lon": 116.4178276100 + "lat":39.969088, + "lon":116.41808 }, "userHead": "https://yycp-static-1255510688.cos.ap-beijing.myqcloud.com/defaultUserHeadImg/5.png", "msgImgUrl": "https://upload.jianshu.io/users/upload_avatars/7663825/7c28763e-002b-4e89-8dea-5b8da210ef2c.jpg" diff --git a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_event_data.json b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_event_data.json index c166e32a62..602c35d0a1 100644 --- a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_event_data.json +++ b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_event_data.json @@ -13,11 +13,11 @@ "zoom": true, "zoomScale": 15, "location": { - "lat": 39.971417, - "lon": 116.415853 + "lat":39.969088, + "lon":116.41808 }, - "lat": 39.968678, - "lon": 116.405467, + "lat":39.969088, + "lon":116.41808, "userHead": "tUserHeadImg/5.png", "msgImgUrl": "https://upload.jianshu.io/users/upload_avatars/7663825/7c28763e-002b-4e89-8dea-5b8da210ef2c.jpg" } \ No newline at end of file diff --git a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_live_event_data.json b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_live_event_data.json index fc870468e2..a08db2ad3d 100644 --- a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_live_event_data.json +++ b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_live_event_data.json @@ -13,11 +13,11 @@ "zoom": true, "zoomScale": 15, "location": { - "lat": 39.971417, - "lon": 116.415853 + "lat":39.969088, + "lon":116.41808 }, - "lat": 39.968678, - "lon": 116.405467, + "lat":39.969088, + "lon":116.41808, "headImgUrl": "https://yycp-static-1255510688.cos.ap-beijing.myqcloud.com/defaultUserHeadImg/5.png", "msgImgUrl": "https://upload.jianshu.io/users/upload_avatars/7663825/7c28763e-002b-4e89-8dea-5b8da210ef2c.jpg" } \ No newline at end of file diff --git a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_barrier_data.json b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_barrier_data.json index 485117a72d..d1fd466bcf 100644 --- a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_barrier_data.json +++ b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_barrier_data.json @@ -11,8 +11,8 @@ "tts": "前方发现障碍物注意避让", "zoom": false, "zoomScale": 15, - "lat": 40.196512, - "lon": 116.736461, + "lat":39.969088, + "lon":116.41808, "userHead": "", "msgImgUrl": "", "polyline": [ diff --git a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_behind_danger_car_data.json b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_behind_danger_car_data.json index 649a659c18..af1fb347f7 100644 --- a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_behind_danger_car_data.json +++ b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_behind_danger_car_data.json @@ -11,8 +11,8 @@ "tts": "发现后方车辆超速,注意保持车道", "zoom": false, "zoomScale": 15, - "lat": 40.196512, - "lon": 116.736461, + "lat":39.969088, + "lon":116.41808, "userHead": "", "msgImgUrl": "", "polyline": [ diff --git a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_car_break_data.json b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_car_break_data.json index 139b16390e..78e259ec25 100644 --- a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_car_break_data.json +++ b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_car_break_data.json @@ -11,8 +11,8 @@ "tts": "前车急刹注意减速", "zoom": false, "zoomScale": 15, - "lat": 40.195206, - "lon": 116.727433, + "lat":39.969088, + "lon":116.41808, "userHead": "", "msgImgUrl": "", "polyline": [ diff --git a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_event_data_shuangshan.json b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_event_data_shuangshan.json index 90519ff610..58209f8d88 100644 --- a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_event_data_shuangshan.json +++ b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_event_data_shuangshan.json @@ -14,8 +14,8 @@ "zoomScale": 15, "userHead": "", "msgImgUrl": "", - "lat": 40.196512, - "lon": 116.736461, + "lat":39.969088, + "lon":116.41808, "polyline": [ [ 116.725091, diff --git a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_event_data_yongdu.json b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_event_data_yongdu.json index a4707406c6..58209f8d88 100644 --- a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_event_data_yongdu.json +++ b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_event_data_yongdu.json @@ -14,8 +14,8 @@ "zoomScale": 15, "userHead": "", "msgImgUrl": "", - "lat": 40.195571, - "lon": 116.729344, + "lat":39.969088, + "lon":116.41808, "polyline": [ [ 116.725091, diff --git a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_hehind_vip_data.json b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_hehind_vip_data.json index 9a770eda3f..dc6471c258 100644 --- a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_hehind_vip_data.json +++ b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_hehind_vip_data.json @@ -11,8 +11,8 @@ "tts": "发现后方VIP车辆,注意避让", "zoom": false, "zoomScale": 15, - "lat": 40.196512, - "lon": 116.736461, + "lat":39.969088, + "lon":116.41808, "userHead": "", "msgImgUrl": "", "polyline": [ diff --git a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_reverse_car_data.json b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_reverse_car_data.json index f0ffa82850..3a8732358c 100644 --- a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_reverse_car_data.json +++ b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_reverse_car_data.json @@ -11,8 +11,8 @@ "tts": "对向来车注意减速", "zoom": false, "zoomScale": 15, - "lat": 40.196175, - "lon": 116.731011, + "lat":39.969088, + "lon":116.41808, "userHead": "", "msgImgUrl": "", "polyline": [ diff --git a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_vip_light_change_data.json b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_vip_light_change_data.json index c3d10b092f..2e80f28202 100644 --- a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_vip_light_change_data.json +++ b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_vip_light_change_data.json @@ -11,8 +11,8 @@ "tts": "已为您变灯,可优先通行", "zoom": false, "zoomScale": 15, - "lat": 40.196512, - "lon": 116.736461, + "lat":39.969088, + "lon":116.41808, "userHead": "", "msgImgUrl": "", "polyline": [ diff --git a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_xingren_yujing_data.json b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_xingren_yujing_data.json index d2c7eaa55a..5c9ac8e5da 100644 --- a/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_xingren_yujing_data.json +++ b/modules/mogo-module-v2x/src/main/res/raw/scenario_push_vr_xingren_yujing_data.json @@ -11,8 +11,8 @@ "tts": "检测到路口行人穿行注意避让", "zoom": false, "zoomScale": 15, - "lat": 40.196512, - "lon": 116.736461, + "lat":39.969088, + "lon":116.41808, "userHead": "", "msgImgUrl": "", "polyline": [ diff --git a/modules/mogo-module-v2x/src/main/res/raw/scenario_seek_help.json b/modules/mogo-module-v2x/src/main/res/raw/scenario_seek_help.json index 2f6a9823ac..58853e2a6f 100644 --- a/modules/mogo-module-v2x/src/main/res/raw/scenario_seek_help.json +++ b/modules/mogo-module-v2x/src/main/res/raw/scenario_seek_help.json @@ -3,8 +3,8 @@ { "createTime":1593678359872, "distance":1100, - "lat":39.866668, - "lon":116.411211, + "lat":39.969088, + "lon":116.41808, "sn":"ZD801B1932L00041", "targetId":20007, "targetName":"故障车", From 85aa9e3b804dbb280aa139e4b486904bb9f080c4 Mon Sep 17 00:00:00 2001 From: liujing Date: Fri, 18 Dec 2020 19:21:49 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E8=B4=9D=E5=A1=9E=E5=B0=94=E6=9B=B2?= =?UTF-8?q?=E7=BA=BF=E5=8A=A8=E7=94=BB=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/animation/BezierAnimationView.java | 110 ++++++++++-------- .../common/animation/BezierEvaluator.java | 50 ++++---- 2 files changed, 94 insertions(+), 66 deletions(-) diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/animation/BezierAnimationView.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/animation/BezierAnimationView.java index 85ad93badb..2bed0dae80 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/animation/BezierAnimationView.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/animation/BezierAnimationView.java @@ -8,6 +8,7 @@ import android.animation.ValueAnimator; import android.content.Context; import android.graphics.PointF; import android.graphics.drawable.Drawable; +import android.os.Handler; import android.util.AttributeSet; import android.util.Log; import android.view.View; @@ -27,11 +28,14 @@ public class BezierAnimationView extends RelativeLayout implements View.OnClickL private Context context; private int[] animation_drawable = { R.drawable.icon_common_heart_animation_vr00, - R.drawable.icon_heart_unchoose_other, + R.drawable.icon_map_marker_pondingl2, R.drawable.icon_map_marker_living}; private Random random = new Random(); - private int width = 500, height = 210; + private int width = 180, height = 140; private int drawableWidth, drawableHeight; + private int resource = 0; + private Handler handler = new Handler(); + private Runnable runnable; public BezierAnimationView(Context context) { this(context, null); @@ -54,13 +58,24 @@ public class BezierAnimationView extends RelativeLayout implements View.OnClickL @Override public void onClick(View view) { - Log.d("执行点赞动画", "ppp"); - bezierAnimation(); + runnable = new Runnable() { + @Override + public void run() { + try { + Log.d("点赞--", ""); + bezierAnimation(resource); + handler.postDelayed(this, 500); + } catch (Exception e) { + e.printStackTrace(); + } + } + }; + runnable.run(); } - private void bezierAnimation() { + private void bezierAnimation(int resource) { final ImageView imageView = new ImageView(context); - imageView.setBackgroundResource(animation_drawable[random.nextInt(animation_drawable.length - 1)]); + imageView.setBackgroundResource(animation_drawable[resource]); RelativeLayout.LayoutParams params = new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); params.addRule(ALIGN_BOTTOM); params.addRule(CENTER_HORIZONTAL); @@ -79,63 +94,66 @@ public class BezierAnimationView extends RelativeLayout implements View.OnClickL } }); animatorSet.start(); + Log.d(TAG, "动画执行到--" + String.valueOf(resource)); } private AnimatorSet getAnimatorSet(ImageView imageView) { AnimatorSet enter = new AnimatorSet(); - /* - * 缩放动画 - * */ + + //1、缩放动画 AnimatorSet scaleAnimator = new AnimatorSet(); - ObjectAnimator alpha = ObjectAnimator.ofFloat(imageView, "alpha", 0.8f, 1f); - ObjectAnimator scaleX = ObjectAnimator.ofFloat(imageView, "scaleX", 0.8f, 1f); - ObjectAnimator scaleY = ObjectAnimator.ofFloat(imageView, "scaleY", 0.8f, 1f); - scaleAnimator.setDuration(500); + ObjectAnimator alpha = ObjectAnimator.ofFloat(imageView, "alpha", 0.3f, 1f); + ObjectAnimator scaleX = ObjectAnimator.ofFloat(imageView, "scaleX", 0.3f, 1f); + ObjectAnimator scaleY = ObjectAnimator.ofFloat(imageView, "scaleY", 0.3f, 1f); + scaleAnimator.setDuration(1000); scaleAnimator.playTogether(alpha, scaleX, scaleY); - /* - * 贝塞尔动画 - * */ - ValueAnimator bezierAnimator = getBezierValueAnimator(imageView); - /* - * 两个动画按顺序播放 - * */ + //2、贝塞尔动画 + ValueAnimator bezierAnimator = getBezierAnimator(imageView); + + //3、两个动画按顺序播放 enter.playSequentially(scaleAnimator, bezierAnimator); return enter; } /** - * 获取贝塞尔曲线动画 + * 贝塞尔动画 * - * @param target * @return */ - private ValueAnimator getBezierValueAnimator(View target) { + private ValueAnimator getBezierAnimator(final ImageView imageView) { - //初始化一个BezierEvaluator - BezierEvaluator evaluator = new BezierEvaluator(getPointF(1), getPointF(1)); + //1、构建贝塞尔曲线的四个点 + PointF point0 = new PointF((width - drawableWidth) / 2, height - drawableHeight); + PointF point1 = new PointF(random.nextInt(width), random.nextInt(height / 2)); + PointF point2 = new PointF(random.nextInt(width), random.nextInt(height / 2) + height / 2); + PointF point3 = new PointF(random.nextInt(width - drawableWidth), 0); - // 起点固定,终点随机 - ValueAnimator animator = ValueAnimator.ofObject(evaluator, new PointF((width - 40) / 2, height - 80), - new PointF(random.nextInt(getWidth()), 0)); - animator.addUpdateListener(new BezierListener(target)); - animator.setTarget(target); - animator.setDuration(3000); - return animator; + //2、创建贝塞尔属性动画 + BezierEvaluator evaluator = new BezierEvaluator(point0, point1); + final ValueAnimator valueAnimator = ObjectAnimator.ofObject(evaluator, point2, point3); + valueAnimator.setInterpolator(new LinearInterpolator()); + valueAnimator.setDuration(1000); + //3、监听贝塞尔曲线估值器返回值 + valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator animation) { + //4、获取BezierEvaluator中evaluate()返回的运行轨迹坐标点,设置点赞图片路线 + PointF pointF = (PointF) animation.getAnimatedValue(); + imageView.setX(pointF.x); + imageView.setY(pointF.y); + //6、获取BezierEvaluator中evaluate()返回的参数t,设置消失动画 + float t = animation.getAnimatedFraction(); + imageView.setAlpha(1 - t + 0.2f); + } + }); + if (resource >= 3) { + handler.removeCallbacks(runnable); + return null; + } else { + resource += 1; + } + return valueAnimator; } - /** - * 获取一条路径的两个控制点 - * - * @param scale - */ - private PointF getPointF(int scale) { - - PointF pointF = new PointF(); - //减去100 是为了控制 x轴活动范围 - pointF.x = random.nextInt((width)); - //再Y轴上 为了确保第二个控制点 在第一个点之上,我把Y分成了上下两半 - pointF.y = random.nextInt((height)) / scale; - return pointF; - } } diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/animation/BezierEvaluator.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/animation/BezierEvaluator.java index 6effc925b1..b7be514fa9 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/animation/BezierEvaluator.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/animation/BezierEvaluator.java @@ -11,34 +11,44 @@ import android.graphics.PointF; */ public class BezierEvaluator implements TypeEvaluator { - private PointF pointF1; - private PointF pointF2; + private PointF point1; + private PointF point2; public BezierEvaluator(PointF point1, PointF point2) { - this.pointF1 = point1; - this.pointF2 = point2; + this.point1 = point1; + this.point2 = point2; } @Override - public PointF evaluate(float time, PointF startValue, PointF endValue) { - float timeLeft = 1.0f - time; - - //结果 + public PointF evaluate(float t, PointF point0, PointF point3) { PointF point = new PointF(); + //t 取值为 [0,1] - PointF point0 = (PointF)startValue;//起点 - PointF point3 = (PointF)endValue;//终点 + /** + * 三阶贝塞尔公式 + * + * B(t)=(1 - t)^3 P0 + * + 3 t (1 - t)^2 P1 + * + 3 t^2 (1 - t) P2 + * + t^3 P3 + */ + point.x = point0.x * (1 - t) * (1 - t) * (1 - t) + + 3 * point1.x * t * (1 - t) * (1 - t) + + 3 * point2.x * t * t * (1 - t) + + point3.x * t * t * t; - // 贝塞尔公式 - point.x = timeLeft * timeLeft * timeLeft * (point0.x) - + 3 * timeLeft * timeLeft * time * (pointF1.x) - + 3 * timeLeft * time * time * (pointF2.x) - + time * time * time * (point3.x); - - point.y = timeLeft * timeLeft * timeLeft * (point0.y) - + 3 * timeLeft * timeLeft * time * (pointF1.y) - + 3 * timeLeft * time * time * (pointF2.y) - + time * time * time * (point3.y); + /** + * 三阶贝塞尔公式 + * + * B(t)=(1 - t)^3 P0 + * + 3 t (1 - t)^2 P1 + * + 3 t^2 (1 - t) P2 + * + t^3 P3 + */ + point.y = point0.y * (1 - t) * (1 - t) * (1 - t) + + 3 * point1.y * t * (1 - t) * (1 - t) + + 3 * point2.y * t * t * (1 - t) + + point3.y * t * t * t; return point; }