• Lottie 使用


    原文:https://mp.weixin.qq.com/s?__biz=MzIxNjc0ODExMA==&mid=2247485033&idx=1&sn=54dd477b4c4cd30d12fde48eba929546&chksm=97851f48a0f2965e342a2cdf55cbefceaa20a24b887e2b79ff940ca57a17b6cb9ae999643ace#rd

    设计师使用 After Effects 设计出完美的动画,然后通过 Bodymovin 插件进行简单的转换和导出成 JSON,最后工程师将 JSON 放入 App 项目中,就可以将动画 100% 还原到产品中。

    缺陷:

    系统版本限制,Android(Api 14+) 和 iOS(>=8.0) 都有不同的版本限制。

    有一些交互动画,不被支持,哪怕导出了也无法被正常执行。

    Bodymovin 插件还有待完善,有些 After Effects 实现的效果,无法被正常导出。

    开始使用:

    compile 'com.airbnb.android:lottie:2.0.0-beta4'

    最简单的使用方式是直接使用 LottieAnimationView ,LottieAnimationView 直接继承自 AppCompatImageView 。

    只需要提前将动画的 JSON 文件,放在 app/src/main/assets 目录下,在 Layout 布局文件中,可以直接使用。

    <com.airbnb.lottie.LottieAnimationView
    android:id="@+id/animation_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:lottie_fileName="hello-world.json"
    app:lottie_loop="true"
    app:lottie_autoPlay="true" />

    或者你也可以使用逻辑代码去控制 Lottie 动画的播放

    LottieAnimationView animationView = (LottieAnimationView) findViewById(R.id.animation_view);
    animationView.setAnimation("hello-world.json");
    animationView.loop(true);
    animationView.playAnimation();

    它支持几个属性:

    lottie_fileName : 播放动画的 json 文件。

    lottie_loop:是否循环播放,默认为 false。

    lottie_autoPlay:是否加载完成之后,自动播放,默认为 false。

    获取网络上的动画:

    try {
                JSONObject json = new JSONObject(Const.json);
                LottieComposition.Factory.fromJson(getResources(), json, new OnCompositionLoadedListener() {
                    @Override
                    public void onCompositionLoaded(LottieComposition composition) {
                        lottie1.setProgress(0);
                        lottie1.loop(true);
                        lottie1.setComposition(composition);
                        lottie1.playAnimation();
                    }
                });
            } catch (JSONException e) {
                e.printStackTrace();
            }
  • 相关阅读:
    使用容器出现vector subscript out of range等类似错误
    string类库中的find和rfind函数
    Codeforces Round #181 (Div. 2)
    有关C++ int long最大表示长度问题
    js之京东商城分类导航效果
    JS之轮播图自动切换效果
    js之网页倒计时效果
    Js获取当前日期时间及其它操作
    js判断浏览器之事件绑定
    js之ajax实例
  • 原文地址:https://www.cnblogs.com/chhom/p/8758883.html
Copyright © 2020-2023  润新知