gpt4 book ai didi

android - 使用 KenBurnsView 定义缩放/平移起始位置

转载 作者:太空宇宙 更新时间:2023-11-03 12:50:48 24 4
gpt4 key购买 nike

我在图书馆工作 KenBurnsView我有一个问题:

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

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

谁能帮帮我?

谢谢。阿德里安

最佳答案

您需要实现自己的 TransitionGenerator 并覆盖 generateNextTransition(),您必须从那里返回一个 Transition 对象。

generateNextTransition() 方法采用:

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

  2. RectF viewport KenBurnsView 对象的边界。

Transition 构造函数采用:

  1. RectF srcRect:可绘制对象的一个​​子矩形,将在转换开始时填充整个 KenBurnsView(如下图所示):

Ken Burns effect

插图来自 Wikipedia

  1. RectF dstRect:可绘制对象的子矩形,在转换结束时将填充整个 KenBurnsView

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

  3. Interpolator 插值器:定义运动性质的插值器实例(可能是 AccelerateDecelerateInterpolatorLinearInterpolator 等.);

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

关于android - 使用 KenBurnsView 定义缩放/平移起始位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31958739/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com