标签: lottie-android

如何知道lottie动画何时完成?

我有一个片段,这里是onCreateView方法:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    mView = inflater.inflate(R.layout.fragment_added_to_cart_anim, container, false);
    ButterKnife.bind(this, mView);

    mAddedToCartAnimation.setAnimation("checked_done_.json");
    mAddedToCartAnimation.loop(false);
    mAddedToCartAnimation.playAnimation();

    // Remove fragment when animation is finished.


    return mView;
}
Run Code Online (Sandbox Code Playgroud)

我需要getActivity().getSupportFragmentManager().beginTransaction().remove(this).commit();lottie动画结束时删除片段.如果我理解正确,当isAnimating()lottie方法返回false时动画已经结束,因为在我的配置中动画不循环,这是我应该删除当前片段.但我不能只使用if语句,因为当它被执行时,动画可能仍在继续.

当lottie动画结束时,我需要一种方法来删除片段,我该怎么做?

android android-fragments lottie-android

15
推荐指数
3
解决办法
9522
查看次数

Lottie 动画库 Z 排序问题

我目前正在玩适用于 Android的 AirBnB 的 Lottie,但我在LottieAnimationViewZ 排序方面遇到了问题。无论我是否将 LottieAnimationView 放在 的顶部RelativeLayout,它总是出现在布局中的所有其他元素之上,例如:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="@dimen/spacing_lrg"
    tools:context="com.myapp.SplashActivity">

    <com.airbnb.lottie.LottieAnimationView
        android:id="@+id/animation_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:lottie_fileName="test.json"/>

   <! -- Other Elements that should appear on top of the background animation -->

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

我也尝试将LottieAnimationView的高程设置为 0,但没有成功解决问题。有没有人知道如何解决这个问题,或者这只是图书馆的限制?另外,如果是限制,是什么原因造成的?

编辑:

这可能已在库更新中修复,因为此问题发生在库的早期版本中(因为这是在 2 年前发布的)。我会验证是否是这种情况,如果是这样,我会接受一些东西来关闭这篇文章。我刚刚继续前进,但这个问题又重新引起了人们的注意。

android z-order android-animation lottie-android

11
推荐指数
1
解决办法
654
查看次数

Lottie 动画有很大的填充。如何通过删除填充来调整动画到视图的大小

我有一个 lottie 动画文件,当我把它放在视图中时,由于文件的内部填充,它变得太小了。所以我在 xml 中使用了 lottie_scale 属性,并且在一些像这样的资源中提到了 LottieComposition但没有成功。

有什么解决办法吗?

android android-animation lottie-android

8
推荐指数
2
解决办法
6735
查看次数

Lottie Android:为动画添加颜色叠加

我正在使用Lottie for Android在应用中添加一些动画.在此应用程序中,可以通过设置选择主色和强调色.我正在使用具有透明背景的动画.为了使动画适合所选择的颜色,我想为动画添加颜色叠加,这样我可以有一个动画文件,但我可以通过编程方式设置颜色.

有没有人知道如何通过添加颜色叠加来操纵动画?

animation android lottie-android

6
推荐指数
3
解决办法
7155
查看次数

在运行时动态替换 Lottie 动画中的 Image

我有一个 After Effects 动画,超级简单,一个正方形四处移动(AE 形状)。我使用 Bodymovin 将动画导出为 .json,并在我的项目中使用 Lottie 添加 json 文件。到现在为止还挺好。

问题从这里开始 --> 在运行时,用我在我的项目中也有的图像替换那个“正方形”。因为这个图片可能会发生变化,我无法静态添加到我的AE动画中,所以需要在运行时动态添加。几乎没有关于如何在 Android 中执行此操作的信息?

android lottie-android lottie

6
推荐指数
3
解决办法
1万
查看次数

One LottieAnimationView 中的动画序列/链接

我收到了多个应使用 Lottie 库按顺序播放的动画文件

我目前正在尝试做的是重用相同的 LottieAnimationView 并在第一个动画完成时设置下一个动画。代码如下所示:

private fun playFirstAnimation() {
    binding.animation.setAnimation(R.raw.progress_1)
    binding.animation.repeatCount = 2
    binding.animation.addAnimatorListener(object : Animator.AnimatorListener {
        override fun onAnimationRepeat(animation: Animator?) = Unit
        override fun onAnimationCancel(animation: Animator?) = Unit
        override fun onAnimationStart(animation: Animator?) = Unit

        override fun onAnimationEnd(animation: Animator?) {
            binding.animation.removeAnimatorListener(this)
            notifyFirstAnimationFinished()
            playSecondAnimation()
        }
    })
    binding.animation.playAnimation()
}

private fun playSecondAnimation() {
    binding.animation.setAnimation(R.raw.progress_2)
    binding.animation.repeatCount = 0
    binding.animation.addAnimatorListener(object : Animator.AnimatorListener {
        override fun onAnimationRepeat(animation: Animator?) = Unit
        override fun onAnimationCancel(animation: Animator?) = Unit
        override fun onAnimationStart(animation: Animator?) = Unit

        override fun …
Run Code Online (Sandbox Code Playgroud)

android lottie-android

6
推荐指数
2
解决办法
1508
查看次数

android使用lottie动画文件作为glide的占位符

我正在使用 Glide 将图像加载到我的活动中(在回收器视图中),我想使用加载动画文件作为占位符。

所以这是我的滑行代码:

Glide.with(mContext)
                .load(PATH_TO_FILE)
                .placeholder(createLottieDrawable("loading_animation.json"))
                .into(holder.img_view);
Run Code Online (Sandbox Code Playgroud)

这是createLottieDrawable我用来从 lottie 文件创建 drawable 的方法:

private LottieDrawable createLottieDrawable(String filename) {
final LottieDrawable lottieDrawable = new LottieDrawable();

LottieComposition.Factory.fromAssetFileName(mContext, filename,
        composition -> {
            lottieDrawable.setComposition(composition);
            lottieDrawable.loop(true);
            lottieDrawable.playAnimation();
        });

return lottieDrawable;
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用,我看不到任何占位符。

知道为什么吗?

android android-glide lottie-android lottie

6
推荐指数
1
解决办法
1688
查看次数

原生 Android 启动画面中的 Lottie 动画

是否可以在启动画面的布局中加载 Lottie 动画?

目前我的启动画面布局是这样的:

背景文件

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
android:opacity="opaque">

<item android:drawable="@drawable/path_background_gradient" />

<item
    android:drawable="@drawable/ic_locky"
    android:gravity="center" />

</layer-list>
Run Code Online (Sandbox Code Playgroud)

样式文件

<!-- Splash Launcher UI theme. -->
<style name="Locky.Theme.Launcher" parent="Locky.Theme">
    <item name="android:windowBackground">@drawable/custom_background_launcher</item>
    <item name="colorPrimary">@color/background_gradient_accent_start</item>
    <item name="colorPrimaryDark">@color/background_gradient_accent_start</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>
Run Code Online (Sandbox Code Playgroud)

我用它来防止 android 冷启动时出现白屏。

但是ic_locky我想使用 Lottie 动画而不是图标。有可能这样做吗?因为有许多应用程序在启动画面中使用动画徽标。

请帮我。

谢谢你们。

android splash-screen kotlin lottie-android lottie

6
推荐指数
1
解决办法
3472
查看次数

如何解释和翻译kotlin代码到java?

我一直在努力将这个Kotlin代码翻译成Java,因为该项目是用Java编写的.我正在通过研究Kotlin语法进行翻译.但是,还有一些人我很难理解.

https://github.com/airbnb/lottie-android/blob/master/LottieSample/src/main/kotlin/com/airbnb/lottie/samples/AppIntroActivity.kt

特别:

private val animationView: LottieAnimationView by lazy {
    rootView.inflate(R.layout.app_intro_animation_view, false) as LottieAnimationView
}

private val viewPager: LockableViewPager by lazy {
    findViewById<LockableViewPager>(R.id.intro_activity_viewPager)
}

override fun generateFinalButtonBehaviour(): IntroButton.Behaviour {
    return object : IntroButton.Behaviour {
        override fun setActivity(activity: IntroActivity) { finish() }
        override fun getActivity(): IntroActivity? = null
        override fun run() {}
    }
}

private fun setViewPagerScroller() {
    try {
        val scrollerField = ViewPager::class.java.getDeclaredField("mScroller")
        scrollerField.isAccessible = true
        val interpolator = ViewPager::class.java.getDeclaredField("sInterpolator")
        interpolator.isAccessible = true

        val scroller = object : Scroller(this, interpolator.get(null) …
Run Code Online (Sandbox Code Playgroud)

java kotlin lottie-android

5
推荐指数
1
解决办法
262
查看次数

React Native:Lottie Animations 在 Android 上闪烁,但在 iOS 上不闪烁

我构建了一个名为“CircleLoader”的自定义组件,它在可见时播放 Lottie 动画。它用作加载动画。在 iOS 上一切正常,但在 Android 上,动画会闪烁。模拟器和真实设备上的屏幕介于黑色和动画本身之间。有没有人遇到过这个问题?根本没有显示任何错误。

这是我的组件代码,如果它有用的话。

 import React from 'react';
 import { Button, StyleSheet, View } from 'react-native';
 import { DangerZone } from 'expo';
 import { dimensions, colors } from '../Utils/BaseStyles';
 import FadeInView from 'react-native-fade-in-view';
 const { Lottie } = DangerZone;
 import * as Animatable from 'react-native-animatable'

 export default class CircleLoader extends React.Component {
   constructor(props) {
    super(props);
    this.state = {
       animation: require('./../../assets/custom_load.json'),
       visible: this.props.visible ? this.props.visible : false,
     };
   };

   componentDidMount() {
     this._playAnimation();
   }

render() {
    const circle_loader …
Run Code Online (Sandbox Code Playgroud)

reactjs react-native react-native-android lottie-android lottie

5
推荐指数
1
解决办法
699
查看次数