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" />