【Android】AnimUtil(动画类,持续更新)

AnimUtil,动画类,持续更新

Crazy Coding

/**
 * @ClassName AnimUtils
 * @Description TODO
 * @Author Kolin Zhao
 * @Date 2021/10/13 17:22
 * @Version 1.0
 */
object AnimUtil {
    fun operateRotateAnim(start: Boolean, view: View? = null, context: Context? = null) {
        if (start) {
            val operatingAnim = AnimationUtils.loadAnimation(context, R.anim.login_rotate_load)
            val interpolator = LinearInterpolator()
            operatingAnim.interpolator = interpolator
            view?.visibility = View.VISIBLE
            view?.animation = operatingAnim
        } else {
            view?.clearAnimation()
            view?.visibility = View.GONE
        }
    }

    fun operateAlphaInAnim(start: Boolean, view: View? = null) {
        if (start) {
            val operatingAnim = AlphaAnimation(0f, 1f)
            operatingAnim.duration = 2000
            view?.startAnimation(operatingAnim)
        } else {
            view?.clearAnimation()
        }
    }

    fun operateAlphaOutAnim(start: Boolean, view: View? = null) {
        if (start) {
            val operatingAnim = AlphaAnimation(1f, 0f)
            operatingAnim.duration = 2000
            view?.startAnimation(operatingAnim)
        } else {
            view?.clearAnimation()
        }
    }

    fun operateTranslateAnim(
        start: Boolean,
        view: View? = null,
        oldX: Float = 0f,
        oldY: Float = 0f,
        newX: Float = 0f,
        newY: Float = 0f
    ) {
        if (start) {
            val operatingAnim = TranslateAnimation(oldX, newX, oldY, newY)
            operatingAnim.duration = 600
            operatingAnim.fillAfter = true
            view?.startAnimation(operatingAnim)
        } else {
            view?.clearAnimation()
        }
    }
}

private fun operateTranslateAnim(view: View) {
	val operatingAnim = ScaleAnimation(0f, 1f, 0f, 1f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f)
	operatingAnim.duration = successAnimTime.toLong()
    view.startAnimation(operatingAnim)
}
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/login_load"
    android:duration="700"
    android:fromDegrees="0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:repeatCount="1"
    android:toDegrees="360" />

猜你喜欢

转载自blog.csdn.net/weixin_42473228/article/details/121724805