3

我正在使用图书馆KenBurnsView并且我有一个问题:

概述或这个不错的库说以下内容:“高度可扩展:您可以定义如何生成要缩放和平移的矩形”,这正是我想要做的,但我不知道具体如何。

我希望能够告诉库从图像的指定区域(我假设为 RectF)缩放或平移。我想我必须实现自己的 TransitionGenerator 并编写自定义 generateNextTransition() mtehod,但我不知道在里面做什么。

谁能帮我 ?

谢谢。阿德里安

4

1 回答 1

5

您需要实现自己的并从必须返回对象的位置TransitionGenerator覆盖。generateNextTransition()Transition

generateNextTransition()方法采用:

  1. RectF drawableBounds:设置为的drawable的边界KenBurnsView

  2. RectF viewport对象的边界KenBurnsView

构造Transition函数采用:

  1. RectF srcRect:可绘制的子矩形,KenBurnsView当过渡开始时将填充整个矩形(如下图所示):

肯伯恩斯效应

来自维基百科的插图

  1. RectF dstRect:可绘制的子矩形,KenBurnsView当过渡结束时将填充整个;

  2. long duration: 过渡的持续时间,以毫秒为单位。

  3. Interpolator interpolator: 一个插值器实例,它将定义运动的性质(可能是AccelerateDecelerateInterpolator,LinearInterpolator等);

如果您希望每个过渡都从上一个过渡停止的位置开始,那么保存dstRect以用作下一个过渡可能是一个好主意。srcRect这正是它RandomTransitionGenerator所做的。请记住,srcRect并且可以有不同的大小(但如果您想始终将图像保留在场景中,dstRect两者都应该是子矩形)。drawableBounds重要的是它们都具有相同的纵横比viewport

于 2015-09-30T20:33:36.463 回答