聊聊 Airbnb 的 Lottie

【背景】自从 Airbnb 开发出 Lottie 之后,设计师只需要使用 After Effects 设计出完美的动画,然后通过 Bodymovin 插件进行简单的转换和导出成 JSON,最后工程师将 JSON 放入 App 项目中,就可以将动画 100% 还原到你的产品中。

【传送门】
(1)https://www.cnblogs.com/plokmju/p/8036668.html
(2)https://www.jianshu.com/p/282d098cf928?utm_source=oschina-app

【简单用法】
(1)xml设置

聊聊 Airbnb 的 Lottie_第1张图片
图片.png

(2)代码设置

聊聊 Airbnb 的 Lottie_第2张图片
图片.png

【注】这个方法会去加载 JSON 文件,并解析动画,之后在子线程中开始异步渲染动画。

【加载方式】

(1) src/main/assets目录下(默认)

(2)加载服务器上的.json文件,若有图片可以设置本地代理文件夹或者将图片资源放入 JSON。

 private void loadUrl(String url) {
    Request request = new Request.Builder().url(url).build();
    OkHttpClient client = new OkHttpClient();
    client.newCall(request).enqueue(new Callback() {
        @Override public void onFailure(Call call, IOException e) {}
        @Override public void onResponse(Call call, Response response) throws IOException {
            try {
                JSONObject json = new JSONObject(response.body().string());
                LottieComposition.Factory
                        .fromJson(getResources(), json, new OnCompositionLoadedListener() {
                            @Override
                            public void onCompositionLoaded(LottieComposition composition) {
                                lottieAnimationView.setComposition(composition);
                                lottieAnimationView.playAnimation();
                            }
                        });
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    });
}

你可能感兴趣的:(聊聊 Airbnb 的 Lottie)