使用KenBurnsView定义缩放/平移开始位置

Adr*_*ian 3 android android-imageview android-kenburnsview

我正在使用KenBurnsView库,我遇到了一个问题:

概述或这个漂亮的库说明如下:"高度可扩展:你可以定义如何生成缩放和平移的矩形",这正是我想要做的,但我不确切知道如何.

我希望能够告诉库从我的图像的指定区域(我认为是一个RectF)进行缩放或平移.我想我必须实现自己的TransitionGenerator并编写一个自定义的generateNextTransition()mtehod,但我不知道该怎么做.

谁能帮我 ?

谢谢.阿德里安

Flá*_*ria 5

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

generateNextTransition()方法需要:

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

  2. RectF viewportKenBurnsView对象的界限.

Transition构造函数采用:

  1. RectF srcRect:drawable的子矩形,在KenBurnsView转换开始时将填充整个(如下图所示):

肯伯恩斯效应

维基百科的插图

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

  2. long duration:转换的持续时间(以毫秒为单位).

  3. Interpolator interpolator:内插器例如将定义运动的性质(可以是AccelerateDecelerateInterpolator,LinearInterpolator等);

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