美文网首页UI
Android Lottie基础使用

Android Lottie基础使用

作者: Coair_Scarlet | 来源:发表于2020-12-05 17:14 被阅读0次

    其他动画方案

    1. 手工制作动画。在Android和iOS上,手工制作动画是设计和工程设计的巨大时间投入。通常很难甚至不可能证明花这么多时间来制作动画是正确的。

    2. GIF。Gif的大小是bodymovin JSON的两倍以上,并且以固定大小呈现,无法放大以匹配大型和高密度屏幕。

    3. Png序列。Png序列甚至比gif更糟糕,因为它们的文件大小通常是bodymovin json大小的30-50倍,并且也无法放大。

    4. 可绘制矢量动画(仅适用于Android)。性能更高,因为它在RenderThread而不是主线程上运行。仅支持Lottie功能的子集。无法手动设置进度。不支持文字或动态颜色。无法以编程方式或通过互联网加载。

    导入项目

    dependencies {
        ...
        implementation "com.airbnb.android:lottie:$lottieVersion"
        ...
    }
    

    获取一个json动画,lottie_clickable_rainbow.json
    放到raw中,如果没有raw文件夹,在res下新建一个
    在layout中导入

    <com.airbnb.lottie.LottieAnimationView
        android:id="@+id/demo_lottie"
        android:layout_width="100dp"
        android:layout_height="100dp"
        ...
        app:lottie_autoPlay="true"
        app:lottie_loop="true"
        app:lottie_rawRes="@raw/lottie_check_mark_yes" />
    

    在代码中可以进行控制:

    bind.apply {
        demoLottieResumeButton.setOnClickListener {
            //恢复暂停的动画
            demoLottieView.resumeAnimation()
        }
        demoLottiePauseButton.setOnClickListener {
            //暂停动画
            demoLottieView.pauseAnimation()
        }
        //获取当前动画进度0F..1F
        demoLottieView.addAnimatorUpdateListener {
            demoLottieSlider.value = it.animatedFraction
        }
        demoLottieSlider.addOnSliderTouchListener(object : Slider.OnSliderTouchListener {
            override fun onStartTrackingTouch(slider: Slider) {
                demoLottieView.pauseAnimation()
            }
            override fun onStopTrackingTouch(slider: Slider) {
                demoLottieView.resumeAnimation()
            }
        })
        demoLottieSlider.addOnChangeListener { slider, value, fromUser ->
            if (fromUser){
                //设置当前动画进度0F..1F
                demoLottieView.progress = slider.value
            }
        }
    }
    

    相关文章

      网友评论

        本文标题:Android Lottie基础使用

        本文链接:https://www.haomeiwen.com/subject/wevgwktx.html