新增一键定位完成后谷歌百度地图放大缩小动画

This commit is contained in:
2026-10-15 16:47:31 +08:00
parent c161f90b0e
commit c48a102afe
6 changed files with 51 additions and 11 deletions

View File

@@ -30,7 +30,7 @@ android {
targetSdkVersion 35 targetSdkVersion 35
versionCode 2601 versionCode 2601
// versionName "2.6.1" // versionName "2.6.1"
versionName "2.6.1-Beta3" versionName "2.6.1-Beta4"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

View File

@@ -862,7 +862,7 @@ class LiveActivityV3 : BaseActivity<ActivityLiveV3Binding>(ActivityLiveV3Binding
mPetList?.apply { mPetList?.apply {
mPetBean?.let { p -> mPetBean?.let { p ->
//List删除当前选中宠物 //List删除当前选中宠物
mHomeMapCommon.showOtherPetHeadMarker(filter { it != p }.toMutableList()) mHomeMapCommon.showOtherPetHeadMarker(filter { it.petId != p.petId }.toMutableList())
} }
} }
} }

View File

@@ -200,6 +200,14 @@ class HomeMapCommonV3 @Inject constructor() : BaseMapCommon() {
mHomeMapBaiduMapFragment?.clearRippleCircleAnim() mHomeMapBaiduMapFragment?.clearRippleCircleAnim()
} }
/**
* 地图放大缩小动画
*/
fun mapScaleAnim() {
mHomeMapGoogleMapFragment?.mapScaleAnim()
mHomeMapBaiduMapFragment?.mapScaleAnim()
}
fun setMarkerInfoViewOffset() { fun setMarkerInfoViewOffset() {
if (null != mHomeMapBaiduMapFragment) { if (null != mHomeMapBaiduMapFragment) {
mHomeMapBaiduMapFragment!!.setMarkerInfoViewOffset() mHomeMapBaiduMapFragment!!.setMarkerInfoViewOffset()

View File

@@ -698,7 +698,7 @@ class MapV3Fragment : BaseFragment<FragmentMapV3Binding>(FragmentMapV3Binding::i
getHomeV2Activity()?.apply { getHomeV2Activity()?.apply {
getPet(false)?.let { p -> getPet(false)?.let { p ->
//删除当前选中宠物 //删除当前选中宠物
mHomeMapCommon.showOtherPetHeadMarker(mPetList.filter { it != p } mHomeMapCommon.showOtherPetHeadMarker(mPetList.filter { it.petId != p.petId }
.toMutableList()) .toMutableList())
} }
} }
@@ -1140,6 +1140,7 @@ class MapV3Fragment : BaseFragment<FragmentMapV3Binding>(FragmentMapV3Binding::i
if (isNotifyRefreshLocation) { if (isNotifyRefreshLocation) {
isNotifyRefreshLocation = false isNotifyRefreshLocation = false
mHomeMapCommon.clearRippleCircleAnim() mHomeMapCommon.clearRippleCircleAnim()
mHomeMapCommon.mapScaleAnim()
mViewBinding.ivHomeMapRefreshLocation.let { mViewBinding.ivHomeMapRefreshLocation.let {
it.isEnabled = true it.isEnabled = true
it.imageTintList = ColorStateList.valueOf( it.imageTintList = ColorStateList.valueOf(

View File

@@ -12,6 +12,7 @@ import android.view.animation.LinearInterpolator
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope
import com.abbidot.baselibrary.constant.MMKVKey import com.abbidot.baselibrary.constant.MMKVKey
import com.abbidot.baselibrary.util.AppUtils import com.abbidot.baselibrary.util.AppUtils
import com.abbidot.baselibrary.util.LogUtil 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.BitmapDescriptor
import com.baidu.mapapi.map.CircleOptions import com.baidu.mapapi.map.CircleOptions
import com.baidu.mapapi.map.MapStatus import com.baidu.mapapi.map.MapStatus
import com.baidu.mapapi.map.MapStatusUpdateFactory
import com.baidu.mapapi.map.Marker import com.baidu.mapapi.map.Marker
import com.baidu.mapapi.map.MarkerOptions import com.baidu.mapapi.map.MarkerOptions
import com.baidu.mapapi.map.Overlay import com.baidu.mapapi.map.Overlay
import com.baidu.mapapi.map.PolylineDottedLineType import com.baidu.mapapi.map.PolylineDottedLineType
import com.baidu.mapapi.map.Stroke import com.baidu.mapapi.map.Stroke
import com.baidu.mapapi.model.LatLng import com.baidu.mapapi.model.LatLng
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlin.math.pow import kotlin.math.pow
@@ -161,8 +165,7 @@ class HomeMapBaiduMapFragment : BaseBaiduMapFragment() {
if (marker == mMarker) { if (marker == mMarker) {
mMapDeviceBean?.let { mMapDeviceBean?.let {
if (it.canShowBattery) { if (it.canShowBattery) {
mDeviceBatteryLayout.visibility = mDeviceBatteryLayout.visibility = if (mDeviceBatteryLayout.isVisible) {
if (mDeviceBatteryLayout.isVisible) {
it.isCloseBattery = true it.isCloseBattery = true
View.GONE View.GONE
} else { } else {
@@ -380,6 +383,18 @@ class HomeMapBaiduMapFragment : BaseBaiduMapFragment() {
startRippleCircleAnim() startRippleCircleAnim()
} }
/**
* 地图放大缩小动画
*/
fun mapScaleAnim() {
viewLifecycleOwner.lifecycleScope.launch {
delay(100)
mBaiduMap?.animateMapStatus(MapStatusUpdateFactory.zoomOut())
delay(500)
mBaiduMap?.animateMapStatus(MapStatusUpdateFactory.zoomIn())
}
}
fun clearRippleCircleAnim() { fun clearRippleCircleAnim() {
mValueAnimator?.cancel() mValueAnimator?.cancel()
mRippleCircle?.remove() mRippleCircle?.remove()

View File

@@ -9,6 +9,7 @@ import android.view.animation.LinearInterpolator
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope
import com.abbidot.baselibrary.constant.MMKVKey import com.abbidot.baselibrary.constant.MMKVKey
import com.abbidot.baselibrary.util.AppUtils import com.abbidot.baselibrary.util.AppUtils
import com.abbidot.baselibrary.util.MMKVUtil 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.Util
import com.abbidot.tracker.util.ViewUtil import com.abbidot.tracker.util.ViewUtil
import com.abbidot.tracker.vm.GeoCoderViewModel 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.GoogleMap
import com.google.android.gms.maps.model.Circle import com.google.android.gms.maps.model.Circle
import com.google.android.gms.maps.model.CircleOptions 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.Marker
import com.google.android.gms.maps.model.MarkerOptions import com.google.android.gms.maps.model.MarkerOptions
import com.google.android.gms.maps.model.Polyline import com.google.android.gms.maps.model.Polyline
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlin.math.pow 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())
}
}
/** /**
* 画线 * 画线
*/ */