我可以在 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。
有人让 Vue-Lottie 与 Nuxt 一起工作吗?我尝试按照 Vue-Lotti 所说导入它:
import Lottie from './lottie.vue';
这表明它找不到该包。
然后我尝试了 Nuxt 的方式:
import Lottie from 'vue-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) 我正在使用 Adobe 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”一样导入它,以另一种方式这是行不通的
我正在尝试用 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
所以我认为动画是错误的,因此我想知道是否存在一些工具或命令来知道动画是否有效。
我目前正在努力在我的应用程序中添加渐变背景动画......我是在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)
我是颤振开发的新手,所以如果这是一个非常愚蠢的错误,请原谅我!非常感谢,非常感谢您的帮助!
我已经尝试过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) 我刚刚更新到最新版本的 Lottie;我们正在使用 Xamarin 表单,现在我的应用程序崩溃了,因为它找不到
谁能告诉我他们被什么取代了?
找不到任何建议更换的内容。
我正在使用lottie设计并使用style其中的属性,问题是当我设置它时width它也会改变它的height.
<LottieView
style={{width:200}
source={require('../../../assests/lottie/test.json')}
autoPlay
loop
/>
Run Code Online (Sandbox Code Playgroud)
请让我知道如何将其包裹在固定的高度和宽度。
我尝试以编程方式将 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)