Android Lottie动画库的导入与使用

发布时间 2023-05-16 19:09:48作者: 拾一贰叁

没想到又把安卓捡回来了,好长时间没碰这玩意但是大作业又不得不写......emmmm所以为了给大作业里的功能实现一个好看的UI界面还是得写个app出来。

不少app在启动时或者干别的什么活动时会有一个动画效果,这时候可以用Lottie库实现。

添加依赖

在build.gradle(:app)的dependencies添加以下一行代码

implementation "com.airbnb.android:lottie:5.2.0"

下载想要的动画

可以在Lottie Marketplace - Premium Lottie animations designed for Web & Mobile (lottiefiles.com)寻找喜欢的动画,下载一个json格式的lottie动画下来。

新建一个存放动画的文件夹asserts

回到Android Studio,右键app,按如下操作新建一个新的文件夹asserts

这里新建的文件夹asserts的位置是src\main\asserts

然后将刚刚下载好的json动画文件想办法扔进去就行了。

使用动画

现在动画已经扔进去了,可以直接用了。

我希望app启动时会显示出动画效果,此时我将app启动的activity设置为LaunchActivity,于是在它的布局文件activity_launch里可以直接这样写:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/skyblue"
        tools:context=".LaunchActivity">
    <com.airbnb.lottie.LottieAnimationView
            app:lottie_fileName="lamp.json"
            android:layout_width="213dp"
            android:layout_height="238dp"
            app:lottie_autoPlay="true"
            app:lottie_loop="true" app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintTop_toTopOf="parent"/>

</androidx.constraintlayout.widget.ConstraintLayout>

在LaunchActivity.java里这样写(代码的功能是显示两秒界面,然后跳转到下一个activity即主界面里去)

package com.example.zzutablelamp;

import android.app.Activity;
import android.content.Intent;
import android.os.Handler;
import android.os.Bundle;

import static androidx.core.content.ContextCompat.startActivity;

public class LaunchActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_launch);

        Integer time = 2000;  //设置等待时间,单位为毫秒
        Handler handler = new Handler();
        //当计时结束时,跳转至主界面
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                startActivity(new Intent(LaunchActivity.this, MainActivity.class));
                LaunchActivity.this.finish();
            }
        }, time);
    }
}

在虚拟机上运行,即可显示出动画效果。