如何增加LottieAnimationView的尺寸?

8

我正在使用Lottie进行动画制作。问题在于,lottie视图的尺寸太小了。有没有办法自定义lottie的尺寸?


您可以手动设置视图的大小,动画将不会失去质量而进行缩放,或者使用指南线设置约束条件。当处理未知或多个动画大小在同一视图上时,使用指南线是最有用的方法。 - Raymond Arteaga
6个回答

7

我尝试了@Sijansd的解答,但是LottieComposition.Factory现在已经被弃用了。所以我想尝试通过缩放视图来实现它。 这就是我为使其正常工作所做的事情。(经过测试和100%工作)

android:scaleType="fitXY"

因此,最终的代码应该是这样的。
<com.airbnb.lottie.LottieAnimationView
            android:id="@+id/lottie_view"
            android:layout_width="200dp"
            android:scaleType="fitXY"
            android:layout_height="30dp"
            android:layout_gravity="center"
            app:lottie_autoPlay="true"
            app:lottie_fileName="animation.json"
            app:lottie_loop="true" />

fitXY在某些设备上不会拉伸图像吗? - user2050075
我使用了android:scaleType="fitEnd",这将我的动画视图推到了底部。 - SilverTech

2

尝试使用animation.setScale(0.4f);

其中0.1f是最小值。


0
使用“LottieDrawable”和“LottieComposition”,您可以轻松设置尺寸。以下代码对我来说是100%有效的。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">

<com.airbnb.lottie.LottieAnimationView
android:id="@+id/animation_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:lottie_loop="true"
app:lottie_autoPlay="true"/>

</LinearLayout>

和Java部分

LottieAnimationView animationView = findViewById(R.id.animation_view);

LottieDrawable drawable = new LottieDrawable();

LottieComposition.Factory.fromAssetFileName(this, "anim_1.json",(composition -> 
{
    drawable.setComposition(composition);
    drawable.playAnimation();
    drawable.setScale(3);
    animationView.setImageDrawable(drawable);

}));

0

**居中裁剪填充对我来说完美运作**

 scaleType="centerCrop"
 android:padding="@dimen/_12sdp"

你也可以使用SDP单元来支持多维度

   <com.airbnb.lottie.LottieAnimationView
        android:id="@+id/rate_bar_home"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:scaleType="centerCrop"
        android:layout_gravity="center"
        app:lottie_loop="true"
        android:padding="@dimen/_12sdp"
        android:layout_marginStart="@dimen/_12sdp"
        android:layout_marginEnd="@dimen/_10sdp"
        app:lottie_autoPlay="true"
        app:lottie_rawRes="@raw/rate" />

0

对于Lottie版本 < 5.0,您可以使用lottie_scale 属性。 对于5.0及以上的版本,已经不推荐使用。


0

我知道这是一个旧帖子,但我也遇到了Lottie动画显示过小的问题。简单的答案是在forms:AnimationView中定义“Scale”。Scale="1"是原始大小。使用“2”或“3”等缩放它。相反,".5"或其他数字会缩小它。希望能帮助到某些人。

<ContentPage.Content>

    <forms:AnimationView Scale="5"
        x:Name="animationView"
        Grid.Row="1"
        Animation="lottieAnimation.json"
        Loop="true"
        AutoPlay="true"         
        VerticalOptions="FillAndExpand"
        HorizontalOptions="FillAndExpand" />

</ContentPage.Content>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接