diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/arrive/ArrivedView.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/arrive/ArrivedView.kt index 01b9df206e..da870cd203 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/arrive/ArrivedView.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/arrive/ArrivedView.kt @@ -1,18 +1,28 @@ package com.mogo.och.shuttle.weaknet.passenger.ui.line.arrive +import android.animation.Animator +import android.animation.AnimatorListenerAdapter +import android.animation.ValueAnimator import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater import androidx.constraintlayout.widget.ConstraintLayout +import com.mogo.commons.AbsMogoApplication +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.common.module.utils.ResourcesUtils import com.mogo.och.data.bean.BusStationBean import com.mogo.och.shuttle.weaknet.passenger.R +import kotlinx.android.synthetic.main.m2_arrive_view.view.aciv_arrow_left +import kotlinx.android.synthetic.main.m2_arrive_view.view.aciv_arrow_right +import kotlinx.android.synthetic.main.m2_arrive_view.view.aciv_door_left +import kotlinx.android.synthetic.main.m2_arrive_view.view.aciv_door_right import kotlinx.android.synthetic.main.m2_arrive_view.view.ochtv_arrive_station_value +import me.jessyan.autosize.utils.AutoSizeUtils class ArrivedView : ConstraintLayout { - private val TAG = "EmptyView" + private val TAG = "ArrivedView" constructor(context: Context) : super(context) @@ -22,6 +32,50 @@ class ArrivedView : ConstraintLayout { constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes) + val marginMax = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),-137f) + val marginMin = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),-55f) + + val animatorArrow = ValueAnimator.ofInt(0, 30).apply { + duration = 500 + repeatMode = ValueAnimator.REVERSE + repeatCount = -1 + addUpdateListener { animation -> + val index = animation.animatedValue as Int + val paramsLeft = aciv_arrow_left.layoutParams as LayoutParams + paramsLeft.marginEnd = index + aciv_arrow_left.layoutParams = paramsLeft + + val paramsRight = aciv_arrow_right.layoutParams as LayoutParams + paramsRight.marginStart = index + aciv_arrow_right.layoutParams = paramsRight + } + } + + val animator = ValueAnimator.ofInt(marginMax, marginMin).apply { + duration = 500 + addUpdateListener { animation -> + val index = animation.animatedValue as Int + val paramsLeft = aciv_door_left.layoutParams as LayoutParams + paramsLeft.marginEnd = index + aciv_door_left.layoutParams = paramsLeft + + val paramsRight = aciv_door_right.layoutParams as LayoutParams + paramsRight.marginStart = index + aciv_door_right.layoutParams = paramsRight + + if(index==-100){ + aciv_arrow_left.visibility = VISIBLE + aciv_arrow_right.visibility = VISIBLE + } + } + addListener(object : AnimatorListenerAdapter() { + override fun onAnimationEnd(animation: Animator) { + animatorArrow.start() + CallerLogger.d(TAG,"动画结束了") + } + }) + } + private fun initView() { LayoutInflater.from(context).inflate(R.layout.m2_arrive_view, this, true) @@ -36,6 +90,25 @@ class ArrivedView : ConstraintLayout { override fun onVisibilityAggregated(isVisible: Boolean) { super.onVisibilityAggregated(isVisible) + CallerLogger.d(TAG,"isVisible:${isVisible}") + if(isVisible) { + if(!animator.isRunning){ + animator.start() + } + }else{ + animator.cancel() + val paramsLeft = aciv_door_left.layoutParams as LayoutParams + paramsLeft.marginEnd =marginMax + aciv_door_left.layoutParams = paramsLeft + + val paramsRight = aciv_door_right.layoutParams as LayoutParams + paramsRight.marginStart = marginMax + aciv_door_right.layoutParams = paramsRight + + aciv_arrow_left.visibility = GONE + aciv_arrow_right.visibility = GONE + animatorArrow.cancel() + } } fun setArrivedStation(busStationBean: BusStationBean) { diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_arrive_door.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_arrive_door.png index 4d5bc6790d..0b6482c231 100644 Binary files a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_arrive_door.png and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_arrive_door.png differ diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_arrive_view.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_arrive_view.xml index d8d214d04f..797d834fbd 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_arrive_view.xml +++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_arrive_view.xml @@ -69,11 +69,12 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@+id/aciv_doorway" android:layout_marginBottom="@dimen/dp_20" - android:layout_marginEnd="-58dp" + android:layout_marginEnd="-137dp" android:layout_width="@dimen/dp_146" android:layout_height="@dimen/dp_273"/>