android Lottie动画有很大的填充,如何通过删除填充来调整动画的大小

bfhwhh0e  于 2022-12-28  发布在  Android
关注(0)|答案(5)|浏览(500)

我有一个lottie动画文件,当我把它放在视图中时,由于文件的内部填充,它变得太小了。所以我在xml中使用了lottie_scale属性,也使用了一些参考资料中提到的lottieComposition,如this,但都不成功。
有什么办法吗?

iqjalb3h

iqjalb3h1#

我认为目前有两种“半”解决方案:
1.在Adobe After Effects上安装Bodymovin,然后导入动画并将其比例设置为500%。
1.不要按Lottie比例缩放Lottie动画视图,而是使用ScaleX、ScaleY:
可扩展标记语言:

android:scaleX="5"
android:scaleY="5"

方案方面:

view.setScaleX(5f);
view.setScaleY(5f);
k10s72fa

k10s72fa2#

尝试使用OverflowBox小工具

SizedBox(
   height: 120,
   child: OverflowBox(
    minHeight: 170,
    maxHeight: 170,
    child: Lottie.asset('assets/json/box.json'),
  ),
),
ewm0tg9j

ewm0tg9j3#

    • 编辑:**

由于我之前提供的解决方案并不适用于每个面临这个问题的人,我决定将我的答案改为更通用(经过尝试和测试)的解决方法,即使用规模:

<com.airbnb.lottie.LottieAnimationView
            android:id="@+id/my_animation"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:scaleX="5"
            android:scaleY="5"
            app:lottie_fileName="animation.json"
            app:lottie_autoPlay="false"/>

android:scaleX="5"是这里的关键。

旧答案

我最近也遇到了同样的问题,我使用了一个负填充来增加视图中动画项目的大小

<com.airbnb.lottie.LottieAnimationView
            android:id="@+id/my_animation"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:padding="-10dp"
            app:lottie_fileName="animation.json"
            app:lottie_autoPlay="false"/>

增加或减少填充值以获得所需的动画大小。

fjaof16o

fjaof16o4#

在喷气背包中

LottieAnimation(
               composition = composition,
               iterations = LottieConstants.IterateForever,
               modifier = Modifier
               .requiredHeight(30.dp)
               .requiredWidth(30.dp).scale(2f,2f),
 )
s8vozzvw

s8vozzvw5#

我也遇到了同样的问题,但找不到一个好的答案,为了让它工作,我使用了负边距。这很难看,但可能是一个快速解决办法。

<LottieView
    style={styles.checkAnimation}
    source={require('<path to json>')}
    autoPlay
    loop={false}
    speed={2}
    autoSize
    resizeMode="cover"
  />

const styles = {
  checkAnimation: {
    position: 'absolute',
    width: '150%',
    height: '115%',
    marginLeft: '-17%',
    marginTop: '-7%',
  },
}

相关问题