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

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
versionCode 2601
// versionName "2.6.1"
versionName "2.6.1-Beta3"
versionName "2.6.1-Beta4"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

View File

@@ -862,7 +862,7 @@ class LiveActivityV3 : BaseActivity<ActivityLiveV3Binding>(ActivityLiveV3Binding
mPetList?.apply {
mPetBean?.let { p ->
//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()
}
/**
* 地图放大缩小动画
*/
fun mapScaleAnim() {
mHomeMapGoogleMapFragment?.mapScaleAnim()
mHomeMapBaiduMapFragment?.mapScaleAnim()
}
fun setMarkerInfoViewOffset() {
if (null != mHomeMapBaiduMapFragment) {
mHomeMapBaiduMapFragment!!.setMarkerInfoViewOffset()

View File

@@ -698,7 +698,7 @@ class MapV3Fragment : BaseFragment<FragmentMapV3Binding>(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>(FragmentMapV3Binding::i
if (isNotifyRefreshLocation) {
isNotifyRefreshLocation = false
mHomeMapCommon.clearRippleCircleAnim()
mHomeMapCommon.mapScaleAnim()
mViewBinding.ivHomeMapRefreshLocation.let {
it.isEnabled = true
it.imageTintList = ColorStateList.valueOf(

View File

@@ -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,8 +165,7 @@ class HomeMapBaiduMapFragment : BaseBaiduMapFragment() {
if (marker == mMarker) {
mMapDeviceBean?.let {
if (it.canShowBattery) {
mDeviceBatteryLayout.visibility =
if (mDeviceBatteryLayout.isVisible) {
mDeviceBatteryLayout.visibility = if (mDeviceBatteryLayout.isVisible) {
it.isCloseBattery = true
View.GONE
} else {
@@ -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()

View File

@@ -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())
}
}
/**
* 画线
*/