KenBurnsView 创建流畅的自定义动画
KenBurnsView creating smooth custom animation
我在 here
中使用 KenBurnsView 库
但是过渡并不顺利,我不知道如何使用 github 上注明的以下代码:
RandomTransitionGenerator generator = new RandomTransitionGenerator(duration, interpolator);
kbv.setTransitionGenerator(generator);
任何人都可以帮助我如何创建平滑过渡?
所以你已经有了一个 KenBurnsView
类型的对象,即 kvb
。如文档所述添加自定义转换,您也建议这样做。
制作
RandomTransitionGenerator generator = new RandomTransitionGenerator(duration, interpolator);
RandomTransitionGenerator
是 class already included in the lib.
It takes 2 parameters :
1) duration
即以毫秒为单位(通常是这种情况)
2) interpolator
- 更像是动画的效果或者动画的变化率。
我们需要创建一个 Interpolator
类型的对象并像这样使用它:
AccelerateDecelerateInterpolator ACCELERATE_DECELERATE = new AccelerateDecelerateInterpolator();
RandomTransitionGenerator generator = new RandomTransitionGenerator(10000, ACCELERATE_DECELERATE);
//duration = 10000ms = 10s and interpolator = ACCELERATE_DECELERATE
kbv.setTransitionGenerator(generator); //set new transition on kbv
文档还补充说,如果您需要更多自定义,您可以制作自己的 TransitionGenerator
class,例如 RandomTransitionGenerator
我在 here
中使用 KenBurnsView 库但是过渡并不顺利,我不知道如何使用 github 上注明的以下代码:
RandomTransitionGenerator generator = new RandomTransitionGenerator(duration, interpolator);
kbv.setTransitionGenerator(generator);
任何人都可以帮助我如何创建平滑过渡?
所以你已经有了一个 KenBurnsView
类型的对象,即 kvb
。如文档所述添加自定义转换,您也建议这样做。
制作
RandomTransitionGenerator generator = new RandomTransitionGenerator(duration, interpolator);
RandomTransitionGenerator
是 class already included in the lib.
It takes 2 parameters :
1) duration
即以毫秒为单位(通常是这种情况)
2) interpolator
- 更像是动画的效果或者动画的变化率。
我们需要创建一个 Interpolator
类型的对象并像这样使用它:
AccelerateDecelerateInterpolator ACCELERATE_DECELERATE = new AccelerateDecelerateInterpolator();
RandomTransitionGenerator generator = new RandomTransitionGenerator(10000, ACCELERATE_DECELERATE);
//duration = 10000ms = 10s and interpolator = ACCELERATE_DECELERATE
kbv.setTransitionGenerator(generator); //set new transition on kbv
文档还补充说,如果您需要更多自定义,您可以制作自己的 TransitionGenerator
class,例如 RandomTransitionGenerator