标签: lottie

检测动画何时完成(AnimationListener)

我可以在 Kotlin 中使用 lottie 以编程方式启动动画,但我正在努力创建一个 AnimationListener。我到底该怎么做?

首先,我通过animation_view.progress 使用 if 语句进行了尝试,但这不起作用。

        textChanger.setOnClickListener{


                   animation_view.setAnimation("data.json")
                   animation_view.playAnimation()
                   animation_view.loop(false)
        }
Run Code Online (Sandbox Code Playgroud)

我希望它能够检测动画何时完成,这样我就可以制作一个吐司。Kotlin 有什么好的lottie 文档吗?

感谢您的帮助,刚刚开始使用 Android 和 Kotlin。

android kotlin lottie

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

Vue-Lottie 和 Nuxt

有人让 Vue-Lottie 与 Nuxt 一起工作吗?我尝试按照 Vue-Lotti 所说导入它:

import Lottie from './lottie.vue';

这表明它找不到该包。

然后我尝试了 Nuxt 的方式:

import Lottie from 'vue-lottie';

这给了我一个“意外的令牌<”错误。

我缺少什么?

vue.js nuxt.js lottie

3
推荐指数
2
解决办法
3983
查看次数

Lottie 动画:停止循环但等到动画完成

我目前正在使用 Lottie 在 Swift 中使用不同的动画制作按钮的动画。

我需要的是一种停止循环的方法,但仅当动画到达末尾并重复自身时才停止。在那一刻,我希望能够插话并将动画替换为另一个非循环动画,这样它看起来就像从循环动画到另一个动画的流畅过渡。原因是,我在循环动画时等待通过网络获取数据的完成。

它以相反的方式进入循环动画,如下所示:

func animate(animation: Animation?, endIn loop: Animation?) {
    self.setImage(nil, for: .normal)
    self.animationView.isHidden = false
    self.animationView.animation = animation
    self.animationView.loopMode = .playOnce
    self.animationView.play { _ in
        self.animationView.animation = loop
        self.animationView.loopMode = .loop
        self.animationView.play()
    }
}
Run Code Online (Sandbox Code Playgroud)

也许其他人已经实现了这样的转换,我将不胜感激任何帮助。

编辑:我尝试以这种方式进行操作,然后在获取完成时调用self.animationView.loopMode = .playOnce

func animate(startAnimation: Animation?,
             transitionTo loop: Animation?,
             endAnimation: Animation?,
             image: UIImage?) {
    self.setImage(nil, for: .normal)
    self.animationView.isHidden = false
    self.animationView.animation = startAnimation
    self.animationView.loopMode = .playOnce
    self.animationView.play { _ in
        self.animationView.animation = loop
        self.animationView.loopMode = .loop
        self.animationView.play { _ …
Run Code Online (Sandbox Code Playgroud)

animation ios swift lottie

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

使用 React 动态导入文件

我正在使用 Adob​​e After Effects 和 React Lottie 创建动画,并且我有许多由 Bodymovin 扩展生成的 json 文件。我以这种方式导入文件:

import * as initial from './white_bird.json';
import * as hoverOn from './white_bird_hover_on.json';
import * as hoverOff from './white_bird_hover_off.json';
Run Code Online (Sandbox Code Playgroud)

但是,当我有 6 个其他组件时,它们看起来相同,但仅在导入的文件上彼此不同。我怎样才能把这些行写在上面,如下所示:

const data = {
    initial: import * as initial(`./${some_param}.json`),
  };
Run Code Online (Sandbox Code Playgroud)

请注意,我必须像“* as”一样导入它,以另一种方式这是行不通的

javascript reactjs bodymovin lottie

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

如何检查lottie动画是否有效?

我正在尝试用 Lottie 进行简单的加载。我找到了这个动画: https: //lottiefiles.com/18563-cooking#_= _

  <com.airbnb.lottie.LottieAnimationView
            android:id="@+id/animation_view"
            android:layout_width="200dp"
            android:layout_height="200dp"
            app:lottie_autoPlay="true"
            app:lottie_loop="true"
            app:lottie_rawRes="@raw/test"
            />
Run Code Online (Sandbox Code Playgroud)

它存储在 SRC/Main/res/raw 中,但我收到此错误:

您必须在加载图像之前设置图像文件夹。使用 LottieComposition#setImagesFolder 或 LottieDrawable#setImagesFolder 设置它

我尝试添加到资产文件夹app:lottie_fileName

所以我认为动画是错误的,因此我想知道是否存在一些工具或命令来知道动画是否有效。

android lottie

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

如何扩展这个lottie动画以填满整个屏幕-Flutter

它没有填满整个屏幕我目前正在努力在我的应用程序中添加渐变背景动画......我是在lottie动画的帮助下做到这一点的!我曾尝试将其装入容器中并成功地做到了这一点。然而有一个问题,尽管我将高度更改为大于 2000,但我无法使容器大于一定数量...我真的不知道该怎么做才能确保容器中没有空格屏幕,并且该渐变填充所有设备中的屏幕。这是代码。我还添加了它的外观截图,以便您了解发生了什么。

import 'package:flutter/material.dart';
import 'package:lottie/lottie.dart';

class WelcomeScreen extends StatefulWidget {
  @override
  _WelcomeScreenState createState() => _WelcomeScreenState();
}

class _WelcomeScreenState extends State<WelcomeScreen> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
      body: Padding(
        padding: const EdgeInsets.all(0),
        child: Container(
          height: 1000,
          width: 1000,
          child: Lottie.asset('assets/gradient-background.json'),
        ),
      ),
    ));
  }
}

Run Code Online (Sandbox Code Playgroud)

我是颤振开发的新手,所以如果这是一个非常愚蠢的错误,请原谅我!非常感谢,非常感谢您的帮助!

animation flutter lottie

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

如果 playOnce 在 Swift 中完成,则结束或关闭 Lottie 动画视图

我已经尝试过loadingview.removeFromSuperView并且loadingView.isHidden = true

是的,它会删除或隐藏视图,但我无法再单击我的根视图。

我也尝试过animatonview.background = .forceFinish,但没有完成这项工作。

import UIKit
import Lottie

class LoadingAnimationView: UIView {

@IBOutlet weak var loadingView: UIView!
let animationView = AnimationView()

override init(frame: CGRect) {
    super.init(frame: frame)
}

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
}

override func awakeFromNib() {
    super.awakeFromNib()
} 

func loadAnimation() {
        let animation = Animation.named("success")

        animationView.animation = animation
        animationView.contentMode = .scaleAspectFill

        loadingView.addSubview(animationView)
        animationView.backgroundBehavior = .pauseAndRestore
        animationView.translatesAutoresizingMaskIntoConstraints = false
        animationView.topAnchor.constraint(equalTo: loadingView.layoutMarginsGuide.topAnchor).isActive = true
        animationView.leadingAnchor.constraint(equalTo: loadingView.leadingAnchor, constant: 0).isActive = true …
Run Code Online (Sandbox Code Playgroud)

swift lottie

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

Lottie IsPlaying 和 Loop 替换 xamarin 表单

我刚刚更新到最新版本的 Lottie;我们正在使用 Xamarin 表单,现在我的应用程序崩溃了,因为它找不到

  1. 正在玩
  2. 环形

谁能告诉我他们被什么取代了?

找不到任何建议更换的内容。

xamarin xamarin.forms lottie

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

Lottie 设计的高度和宽度不符合风格

我正在使用lottie设计并使用style其中的属性,问题是当我设置它时width它也会改变它的height.

<LottieView 
    style={{width:200}
    source={require('../../../assests/lottie/test.json')}
    autoPlay
    loop
/>
Run Code Online (Sandbox Code Playgroud)

请让我知道如何将其包裹在固定的高度和宽度。

animation react-native lottie

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

如何在 Java 中以编程方式添加 Lottie 动画

我尝试以编程方式将 Lottie Animation 添加到 Java (Android),但一直失败。我将在下面显示我的代码,我需要从drawable更改为Lottie。

这是可绘制对象的代码:

if (status.equals("connect")) {

            vpnBtn.setBackgroundResource(R.drawable.but_connect_light);
            logTv.setTextColor(getResources().getColor(R.color.font_color));

        } else if (status.equals("connecting")) {

            vpnBtn.setBackgroundResource(R.drawable.but_connecting_dark);
            logTv.setTextColor(getResources().getColor(R.color.font_color));

        } else if (status.equals("connected")) {

            vpnBtn.setBackgroundResource(R.drawable.but_disconnect_dark);
            logTv.setTextColor(getResources().getColor(R.color.purple));

        } else if (status.equals("failed")) {

            vpnBtn.setBackgroundResource(R.drawable.but_connect_dark);

        }
Run Code Online (Sandbox Code Playgroud)

这是上面相关的xml

<ImageView
        android:id="@+id/vpnBtn"
        android:layout_alignParentBottom="true"
        android:layout_gravity="center_horizontal"
        android:tag="1"
        android:layout_width="140dp"
        android:layout_height="140dp"
        android:background="@drawable/but_connect_light"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="50dp"/>
Run Code Online (Sandbox Code Playgroud)

java android android-studio lottie

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