在运行时将贝塞尔曲线应用于 MotionLayout
Apply bezier curve to MotionLayout at runtime
我已经使用 this article 创建了一个 expand/collapse cardview 组件。现在,expand/collapse 动画是线性的。我想对动画应用贝塞尔曲线,这样动画就会 ease-in-out
。我在谷歌上搜索了很多,但找不到如何在运行时动态添加它。我已经看到它从 MotionScene xml 文件中应用。但是找不到在运行时执行此操作的任何 material。请让我知道如何在运行时添加它。
非常感谢。
Transition 有一个方法 setInterpolatorInfo 所以在你引用的文章中
他们在哪里输入 transaction.duration = 1000
您应该能够添加以下内容之一。
val INTERPOLATOR_REFERENCE_ID = -2
val SPLINE_STRING = -1
val EASE_IN_OUT = 0;
val EASE_IN = 1;
val EASE_OUT = 2;
val LINEAR = 3;
val BOUNCE = 4;
val OVERSHOOT = 5;
val ANTICIPATE = 6;
//Android Custom Interpolators
transaction.setInterpolatorInfo(INTERPOLATOR_REFERENCE_ID , null, R.interpolator.???? )
// css style string
transaction.setInterpolatorInfo(SPLINE_STRING , "cubic(0,0,0,1.0)", 0 )
// pre baked
transaction.setInterpolatorInfo( OVERSHOOT , null, 0 )
我已经使用 this article 创建了一个 expand/collapse cardview 组件。现在,expand/collapse 动画是线性的。我想对动画应用贝塞尔曲线,这样动画就会 ease-in-out
。我在谷歌上搜索了很多,但找不到如何在运行时动态添加它。我已经看到它从 MotionScene xml 文件中应用。但是找不到在运行时执行此操作的任何 material。请让我知道如何在运行时添加它。
非常感谢。
Transition 有一个方法 setInterpolatorInfo 所以在你引用的文章中
他们在哪里输入 transaction.duration = 1000
您应该能够添加以下内容之一。
val INTERPOLATOR_REFERENCE_ID = -2
val SPLINE_STRING = -1
val EASE_IN_OUT = 0;
val EASE_IN = 1;
val EASE_OUT = 2;
val LINEAR = 3;
val BOUNCE = 4;
val OVERSHOOT = 5;
val ANTICIPATE = 6;
//Android Custom Interpolators
transaction.setInterpolatorInfo(INTERPOLATOR_REFERENCE_ID , null, R.interpolator.???? )
// css style string
transaction.setInterpolatorInfo(SPLINE_STRING , "cubic(0,0,0,1.0)", 0 )
// pre baked
transaction.setInterpolatorInfo( OVERSHOOT , null, 0 )