From e491dc1617fe0d6f03723afba9a8834fd9e831e2 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Thu, 30 Jun 2022 13:17:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=BC=80=E5=85=B3=E9=97=AD=E5=B7=A6?= =?UTF-8?q?=E4=BE=A7=E4=BD=BF=E7=94=A8=E5=8A=A8=E7=94=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/leftmenu/OverlayLeftViewUtils.kt | 55 ++++++++++++++----- 1 file changed, 42 insertions(+), 13 deletions(-) diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/OverlayLeftViewUtils.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/OverlayLeftViewUtils.kt index 0f792dbcb1..32c2795070 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/OverlayLeftViewUtils.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/OverlayLeftViewUtils.kt @@ -1,5 +1,7 @@ package com.mogo.och.taxi.passenger.ui.leftmenu +import android.animation.Animator +import android.animation.ValueAnimator import android.annotation.SuppressLint import android.app.Activity import android.content.Context @@ -7,6 +9,7 @@ import android.graphics.PixelFormat import android.graphics.Rect import android.graphics.Region import android.view.* +import android.view.animation.LinearInterpolator import android.widget.ListView import androidx.appcompat.widget.AppCompatImageView import androidx.constraintlayout.widget.ConstraintLayout @@ -165,14 +168,27 @@ object OverlayLeftViewUtils { * 打开状态栏 */ private fun open(overlayView: View,windowManager: WindowManager?) { - acivOpenClose?.apply { - pivotX = (width /2).toFloat() - pivotY = (height /2).toFloat() - rotation = 0f + val valueAnimator = ValueAnimator.ofInt(params!!.x, 0) + valueAnimator.duration = 100 + valueAnimator.interpolator = LinearInterpolator() + valueAnimator.addUpdateListener { + params?.x = it.animatedValue as Int + windowManager?.updateViewLayout(overlayView, params) } - params?.x = 0 - windowManager?.updateViewLayout(overlayView, params) - closeByTime(overlayView, windowManager) + valueAnimator.addListener(object : Animator.AnimatorListener { + override fun onAnimationStart(animation: Animator?) {} + override fun onAnimationEnd(animation: Animator?) { + acivOpenClose?.apply { + pivotX = (width /2).toFloat() + pivotY = (height /2).toFloat() + rotation = 0f + } + closeByTime(overlayView, windowManager) + } + override fun onAnimationCancel(animation: Animator?) {} + override fun onAnimationRepeat(animation: Animator?) {} + }) + valueAnimator.start() } private fun closeByTime( @@ -197,13 +213,26 @@ object OverlayLeftViewUtils { * 关闭状态栏 */ private fun close(overlayView: View,windowManager: WindowManager?) { - acivOpenClose?.apply { - pivotX = (width /2).toFloat() - pivotY = (height /2).toFloat() - rotation = 180f + val valueAnimator = ValueAnimator.ofInt(params!!.x, DEVIATION_WIDTH) + valueAnimator.duration = 100 + valueAnimator.interpolator = LinearInterpolator() + valueAnimator.addUpdateListener { + params?.x = it.animatedValue as Int + windowManager?.updateViewLayout(overlayView, params) } - params?.x = DEVIATION_WIDTH - windowManager?.updateViewLayout(overlayView, params) + valueAnimator.addListener(object : Animator.AnimatorListener { + override fun onAnimationStart(animation: Animator?) {} + override fun onAnimationEnd(animation: Animator?) { + acivOpenClose?.apply { + pivotX = (width /2).toFloat() + pivotY = (height /2).toFloat() + rotation = 180f + } + } + override fun onAnimationCancel(animation: Animator?) {} + override fun onAnimationRepeat(animation: Animator?) {} + }) + valueAnimator.start() } private fun layoutParams(ani: Int,view :View) {