From c48a102afe7b456f9d8b97de9889befd8c074c33 Mon Sep 17 00:00:00 2001 From: yezhiqiu <123456@qq.com> Date: Thu, 15 Oct 2026 16:47:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=80=E9=94=AE=E5=AE=9A?= =?UTF-8?q?=E4=BD=8D=E5=AE=8C=E6=88=90=E5=90=8E=E8=B0=B7=E6=AD=8C=E7=99=BE?= =?UTF-8?q?=E5=BA=A6=E5=9C=B0=E5=9B=BE=E6=94=BE=E5=A4=A7=E7=BC=A9=E5=B0=8F?= =?UTF-8?q?=E5=8A=A8=E7=94=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 2 +- .../tracker/ui/activity/map/LiveActivityV3.kt | 2 +- .../tracker/ui/common/map/HomeMapCommonV3.kt | 8 +++++ .../tracker/ui/fragment/map/MapV3Fragment.kt | 3 +- .../map/baidumap/HomeMapBaiduMapFragment.kt | 31 ++++++++++++++----- .../googlemap/HomeMapGoogleMapFragmentV3.kt | 16 ++++++++++ 6 files changed, 51 insertions(+), 11 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 1abee76..f6c7943 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -30,7 +30,7 @@ android { targetSdkVersion 35 versionCode 2601 // versionName "2.6.1" - versionName "2.6.1-Beta3" + versionName "2.6.1-Beta4" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/java/com/abbidot/tracker/ui/activity/map/LiveActivityV3.kt b/app/src/main/java/com/abbidot/tracker/ui/activity/map/LiveActivityV3.kt index 77bd42d..ed085c7 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/activity/map/LiveActivityV3.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/activity/map/LiveActivityV3.kt @@ -862,7 +862,7 @@ class LiveActivityV3 : BaseActivity(ActivityLiveV3Binding mPetList?.apply { mPetBean?.let { p -> //List删除当前选中宠物 - mHomeMapCommon.showOtherPetHeadMarker(filter { it != p }.toMutableList()) + mHomeMapCommon.showOtherPetHeadMarker(filter { it.petId != p.petId }.toMutableList()) } } } diff --git a/app/src/main/java/com/abbidot/tracker/ui/common/map/HomeMapCommonV3.kt b/app/src/main/java/com/abbidot/tracker/ui/common/map/HomeMapCommonV3.kt index 159b491..5eb8e2f 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/common/map/HomeMapCommonV3.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/common/map/HomeMapCommonV3.kt @@ -200,6 +200,14 @@ class HomeMapCommonV3 @Inject constructor() : BaseMapCommon() { mHomeMapBaiduMapFragment?.clearRippleCircleAnim() } + /** + * 地图放大缩小动画 + */ + fun mapScaleAnim() { + mHomeMapGoogleMapFragment?.mapScaleAnim() + mHomeMapBaiduMapFragment?.mapScaleAnim() + } + fun setMarkerInfoViewOffset() { if (null != mHomeMapBaiduMapFragment) { mHomeMapBaiduMapFragment!!.setMarkerInfoViewOffset() diff --git a/app/src/main/java/com/abbidot/tracker/ui/fragment/map/MapV3Fragment.kt b/app/src/main/java/com/abbidot/tracker/ui/fragment/map/MapV3Fragment.kt index 89db25a..bb1ffd3 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/fragment/map/MapV3Fragment.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/fragment/map/MapV3Fragment.kt @@ -698,7 +698,7 @@ class MapV3Fragment : BaseFragment(FragmentMapV3Binding::i getHomeV2Activity()?.apply { getPet(false)?.let { p -> //删除当前选中宠物 - mHomeMapCommon.showOtherPetHeadMarker(mPetList.filter { it != p } + mHomeMapCommon.showOtherPetHeadMarker(mPetList.filter { it.petId != p.petId } .toMutableList()) } } @@ -1140,6 +1140,7 @@ class MapV3Fragment : BaseFragment(FragmentMapV3Binding::i if (isNotifyRefreshLocation) { isNotifyRefreshLocation = false mHomeMapCommon.clearRippleCircleAnim() + mHomeMapCommon.mapScaleAnim() mViewBinding.ivHomeMapRefreshLocation.let { it.isEnabled = true it.imageTintList = ColorStateList.valueOf( diff --git a/app/src/main/java/com/abbidot/tracker/ui/fragment/map/baidumap/HomeMapBaiduMapFragment.kt b/app/src/main/java/com/abbidot/tracker/ui/fragment/map/baidumap/HomeMapBaiduMapFragment.kt index 560e724..d4fbf81 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/fragment/map/baidumap/HomeMapBaiduMapFragment.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/fragment/map/baidumap/HomeMapBaiduMapFragment.kt @@ -12,6 +12,7 @@ import android.view.animation.LinearInterpolator import androidx.core.content.ContextCompat import androidx.core.view.isVisible import androidx.fragment.app.viewModels +import androidx.lifecycle.lifecycleScope import com.abbidot.baselibrary.constant.MMKVKey import com.abbidot.baselibrary.util.AppUtils import com.abbidot.baselibrary.util.LogUtil @@ -32,12 +33,15 @@ import com.baidu.mapapi.map.BaiduMap import com.baidu.mapapi.map.BitmapDescriptor import com.baidu.mapapi.map.CircleOptions import com.baidu.mapapi.map.MapStatus +import com.baidu.mapapi.map.MapStatusUpdateFactory import com.baidu.mapapi.map.Marker import com.baidu.mapapi.map.MarkerOptions import com.baidu.mapapi.map.Overlay import com.baidu.mapapi.map.PolylineDottedLineType import com.baidu.mapapi.map.Stroke import com.baidu.mapapi.model.LatLng +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch import kotlin.math.pow @@ -161,14 +165,13 @@ class HomeMapBaiduMapFragment : BaseBaiduMapFragment() { if (marker == mMarker) { mMapDeviceBean?.let { if (it.canShowBattery) { - mDeviceBatteryLayout.visibility = - if (mDeviceBatteryLayout.isVisible) { - it.isCloseBattery = true - View.GONE - } else { - it.isCloseBattery = false - View.VISIBLE - } + mDeviceBatteryLayout.visibility = if (mDeviceBatteryLayout.isVisible) { + it.isCloseBattery = true + View.GONE + } else { + it.isCloseBattery = false + View.VISIBLE + } } } true @@ -380,6 +383,18 @@ class HomeMapBaiduMapFragment : BaseBaiduMapFragment() { startRippleCircleAnim() } + /** + * 地图放大缩小动画 + */ + fun mapScaleAnim() { + viewLifecycleOwner.lifecycleScope.launch { + delay(100) + mBaiduMap?.animateMapStatus(MapStatusUpdateFactory.zoomOut()) + delay(500) + mBaiduMap?.animateMapStatus(MapStatusUpdateFactory.zoomIn()) + } + } + fun clearRippleCircleAnim() { mValueAnimator?.cancel() mRippleCircle?.remove() diff --git a/app/src/main/java/com/abbidot/tracker/ui/fragment/map/googlemap/HomeMapGoogleMapFragmentV3.kt b/app/src/main/java/com/abbidot/tracker/ui/fragment/map/googlemap/HomeMapGoogleMapFragmentV3.kt index e1b81ef..94decc6 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/fragment/map/googlemap/HomeMapGoogleMapFragmentV3.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/fragment/map/googlemap/HomeMapGoogleMapFragmentV3.kt @@ -9,6 +9,7 @@ import android.view.animation.LinearInterpolator import androidx.core.content.ContextCompat import androidx.core.view.isVisible import androidx.fragment.app.viewModels +import androidx.lifecycle.lifecycleScope import com.abbidot.baselibrary.constant.MMKVKey import com.abbidot.baselibrary.util.AppUtils import com.abbidot.baselibrary.util.MMKVUtil @@ -22,6 +23,7 @@ import com.abbidot.tracker.databinding.LayoutPetLocationInfoBinding import com.abbidot.tracker.util.Util import com.abbidot.tracker.util.ViewUtil import com.abbidot.tracker.vm.GeoCoderViewModel +import com.google.android.gms.maps.CameraUpdateFactory import com.google.android.gms.maps.GoogleMap import com.google.android.gms.maps.model.Circle import com.google.android.gms.maps.model.CircleOptions @@ -29,6 +31,8 @@ import com.google.android.gms.maps.model.LatLng import com.google.android.gms.maps.model.Marker import com.google.android.gms.maps.model.MarkerOptions import com.google.android.gms.maps.model.Polyline +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch import kotlin.math.pow /** @@ -301,6 +305,18 @@ class HomeMapGoogleMapFragmentV3 : BaseGoogleMapFragment() { } } + /** + * 地图放大缩小动画 + */ + fun mapScaleAnim() { + viewLifecycleOwner.lifecycleScope.launch { + delay(100) + mGoogleMap?.animateCamera(CameraUpdateFactory.zoomOut()) + delay(500) + mGoogleMap?.animateCamera(CameraUpdateFactory.zoomIn()) + } + } + /** * 画线 */