我正在使用图书馆KenBurnsView并且我有一个问题:
概述或这个不错的库说以下内容:“高度可扩展:您可以定义如何生成要缩放和平移的矩形”,这正是我想要做的,但我不知道具体如何。
我希望能够告诉库从图像的指定区域(我假设为 RectF)缩放或平移。我想我必须实现自己的 TransitionGenerator 并编写自定义 generateNextTransition() mtehod,但我不知道在里面做什么。
谁能帮我 ?
谢谢。阿德里安
我正在使用图书馆KenBurnsView并且我有一个问题:
概述或这个不错的库说以下内容:“高度可扩展:您可以定义如何生成要缩放和平移的矩形”,这正是我想要做的,但我不知道具体如何。
我希望能够告诉库从图像的指定区域(我假设为 RectF)缩放或平移。我想我必须实现自己的 TransitionGenerator 并编写自定义 generateNextTransition() mtehod,但我不知道在里面做什么。
谁能帮我 ?
谢谢。阿德里安
您需要实现自己的并从必须返回对象的位置TransitionGenerator
覆盖。generateNextTransition()
Transition
该generateNextTransition()
方法采用:
RectF drawableBounds
:设置为的drawable的边界KenBurnsView
;
RectF viewport
对象的边界KenBurnsView
。
构造Transition
函数采用:
RectF srcRect
:可绘制的子矩形,KenBurnsView
当过渡开始时将填充整个矩形(如下图所示):来自维基百科的插图
RectF dstRect
:可绘制的子矩形,KenBurnsView
当过渡结束时将填充整个;
long duration
: 过渡的持续时间,以毫秒为单位。
Interpolator interpolator
: 一个插值器实例,它将定义运动的性质(可能是AccelerateDecelerateInterpolator
,LinearInterpolator
等);
如果您希望每个过渡都从上一个过渡停止的位置开始,那么保存dstRect
以用作下一个过渡可能是一个好主意。srcRect
这正是它RandomTransitionGenerator
所做的。请记住,srcRect
并且可以有不同的大小(但如果您想始终将图像保留在场景中,dstRect
两者都应该是子矩形)。drawableBounds
重要的是它们都具有相同的纵横比viewport
。