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