打开关闭左侧使用动画
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user