[fea]
[音乐指针动画]
This commit is contained in:
yangyakun
2025-04-25 14:00:38 +08:00
parent defe52dcb7
commit 86ee3d8f4b
2 changed files with 26 additions and 4 deletions

View File

@@ -11,8 +11,6 @@ import android.widget.SeekBar
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.findViewTreeViewModelStoreOwner
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.util.TimeTransformUtils
import com.mogo.och.common.module.manager.audition.MusicData
@@ -20,7 +18,7 @@ import com.mogo.och.common.module.manager.audition.PlayState
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.unmanned.taxi.passenger.R
import kotlinx.android.synthetic.main.taxi_p_music_playing.view.iv_music_cover
import kotlinx.android.synthetic.main.taxi_p_music_playing.view.iv_music_cover_bg
import kotlinx.android.synthetic.main.taxi_p_music_playing.view.iv_music_point
import kotlinx.android.synthetic.main.taxi_p_music_playing.view.iv_show_next
import kotlinx.android.synthetic.main.taxi_p_music_playing.view.iv_show_pre
import kotlinx.android.synthetic.main.taxi_p_music_playing.view.iv_toggle
@@ -47,10 +45,12 @@ class MusicPlayingView : ConstraintLayout, MusicPlayingViewModel.IMusicPlayingVi
private var viewModel:MusicPlayingViewModel?=null
private var animator:ObjectAnimator?=null
private var animatorPoint:ObjectAnimator?=null
private var isSeekBarTouch = false
// private val centerWidth = AutoSizeUtils.dp2px(context,146f)
private val centerWidth = AutoSizeUtils.dp2px(context,294f)
private val centerHeight = AutoSizeUtils.dp2px(context,130f)
private fun initView() {
LayoutInflater.from(context).inflate(R.layout.taxi_p_music_playing, this, true)
@@ -153,12 +153,33 @@ class MusicPlayingView : ConstraintLayout, MusicPlayingViewModel.IMusicPlayingVi
animator?.repeatMode = ValueAnimator.RESTART
animator?.interpolator = LinearInterpolator()
animator?.start()
if(animatorPoint!=null){
animatorPoint?.cancel()
animatorPoint = null
}
animatorPoint = ObjectAnimator.ofFloat(iv_music_point, "rotation", iv_music_point.rotation, 25f)
iv_music_point.pivotX = (centerWidth).toFloat()
iv_music_point.pivotY = (centerHeight).toFloat()
animatorPoint?.duration = 2000
animatorPoint?.interpolator = LinearInterpolator()
animatorPoint?.start()
}
private fun endAnimal(){
if(animator!=null){
animator?.cancel()
animator = null
}
if(animatorPoint!=null){
animatorPoint?.cancel()
animatorPoint = null
}
animatorPoint = ObjectAnimator.ofFloat(iv_music_point, "rotation", iv_music_point.rotation,0f)
iv_music_point.pivotX = (centerWidth).toFloat()
iv_music_point.pivotY = (centerHeight).toFloat()
animatorPoint?.duration = 2000
animatorPoint?.interpolator = LinearInterpolator()
animatorPoint?.start()
}
override fun setPlayOrpause(it: MusicData) {

View File

@@ -42,6 +42,7 @@
android:layout_height="@dimen/dp_59"/>
<ImageView
android:id="@+id/iv_music_point"
android:src="@drawable/taxi_p_music_playing_pointer"
app:layout_constraintStart_toEndOf="@+id/iv_music_cover"
android:layout_width="@dimen/dp_501"