一、前言
Android提供了动力学动画(DynamicAnimation)的支持,这类动画具有物理动力学的相关特性(而不是普通线性变化),其中弹簧动画(SpringAnimation)就是一种。顾名思义,弹簧动画就是符合弹簧收缩特性的动画。
二、使用弹簧动画
2.1 引入依赖库
动力学动画并不在系统框架库中,使用时必须引入依赖库。
// 以下是 support 库版本
// implementation 'com.android.support:support-dynamic-animation:28.0.0'
// 以下是 androidx 版本
// Java
// implementation 'androidx.dynamicanimation:dynamicanimation:1.0.0'
// kotlin
implementation 'androidx.dynamicanimation:dynamicanimation-ktx:1.0.0-alpha03'
注意:
1. support 库和 androidx 库不能同时使用;
2.依赖库的最新版本以官方为准。
2.2 创建弹簧动画
创建弹簧动画主要是构建 SpringAnimation 类实例,创建对象时需要指定一个添加动画的对象属性,添加动画属性的最终值和需要添加动画的对象,并可以根据需要设置各种参数和监听。
-
可添加弹簧动画的对象属性有(在
DynamicAnimation类中定义):ALPHA:视图的透明度,取值 0 ~ 1,默认值是1(不透明),取值 0 时为不可见。TRANSLATION_X:X坐标位移动画。TRANSLATION_Y:Y坐标位移动画。TRANSLATION_Z:Z坐标位移动画。SCROLL_X: X 轴滚动动画。SCROLL_Y: Y 轴滚动动画。X: Z 坐标值变更动画。Y: Y 坐标值变更动画。Z: Z 坐标值变更动画。
-
示例(Y轴移动动画)
findViewById<View>(R.id.imageView).apply {
var y = 0f
var dy: Float
var startValue = 0f
// 添加手势,滑动时向下移动对象,当手放开时,向上采用弹簧动画恢复到原位
setOnTouchListener {
v, event ->
when(event.action) {
MotionEvent.ACTION_DOWN -> {
startValue = 0f
y = event.rawY
}
MotionEvent
Android弹簧动画的使用与参数配置

本文介绍了Android动力学动画中的弹簧动画。首先需引入依赖库,接着可创建弹簧动画,能为其添加监听器监听不同状态。还可配置动画参数,包括起始值、最大最小值、起始速度,以及弹簧的阻尼比和强度等。
最低0.47元/天 解锁文章
999

被折叠的 条评论
为什么被折叠?



