我有一个问题想问那些有使用lottie json文件经验的人。我没有使用lottie的经验,所以我想我可能错过了一些明显的知识。当我把我的动画渲染到一个视图中时,动画对象被放置在视图的中心,就像这样
_____________________________________________
| |
| [animated object] |
|_____________________________________________|
有没有一种方法可以修改json文件,使动画对象适合整个视图,就像这样:
_____________________________________________
| |
| [a n i m a t e d o b j e c t s ]|
|_____________________________________________|
我尝试过在xml中设置视图,如下所示:
android:scaleType="centerCrop"
android:adjustViewBounds="true"
但没有成功
我还试图设定一个更大的尺度:
app:lottie_scale="2"
但我没有成功谢谢你抽出时间!
4条答案
按热度按时间tuwxkamq1#
试试这个代码,很管用
fhity93d2#
只需像对待其他视图一样对待它,并以编程方式使用setPadding。
gstyhher3#
使用“LottieDrawable”和“LottieComposition”,你可以很容易地设置比例。贝娄代码是100%为我工作。
和Java部分
vof42yt14#
我知道这是一个老问题,但我也面临过类似的问题:许多Lottie动画都有很大的边距,很难正确放置它们。而且,边距的空间对应用程序来说是一种浪费(Eidogg,我不能在动画对象附近放置元素,因为边距是动画的一部分)。
我知道编辑文件使用Adobe后效应和其他工具是可能的,但我不想支付许可证,以消除利润为几个洛蒂动画。
我在specification of LottieFiles中做了一些调查,通过计算动画中每一帧的边界框,解决了这个问题。一旦计算了整个动画的边界框,就使用预合成层更新Lottie动画,其被调整以确保动画中示出的部分是对应于边界框的窗口。使用此方法不会修改形状,并且仍然可以在其他软件(如Adobe After Effects)中编辑动画。
预合成层是渲染资源列表中对象的Lottie层,资源列表中包含其他对象,这些对象可以是自包含的动画,关键是预合成层可以进行平移、缩放等操作。
我创建了一个工具,可以修剪Lottie动画的边距,并允许您下载它以在Web或应用程序中使用。
该工具将创建动画的现有层放入资源对象:
然后将动画设置为包含引用上一个动画的新预合成层:
整个实现在https://github.com/dealfonso/simplelottieplayer上提供