android 无法从URL加载Lottie动画

yebdmbv4  于 2022-12-28  发布在  Android
关注(0)|答案(2)|浏览(312)

我试图从URL添加洛蒂动画在我的视图中。我可以从本地资产文件夹加载。但当我试图从URL加载时,它没有显示。请帮助我。
这是我的代码:

String cacheKey ="LOTTIE_CACHE_KEY";
        mLottieDrawable = new LottieDrawable();
        mLottieDrawable.enableMergePathsForKitKatAndAbove(true);
        mLottieDrawable.setCallback(this);
        /*LottieResult<LottieComposition> result =
                LottieCompositionFactory.fromAssetSync(getContext().getApplicationContext(),
                        "woman_singer.json");
        mLottieDrawable.setComposition(result.getValue());*/

        String url = "https://assets5.lottiefiles.com/packages/lf20_GoeyCV7pi2.json";
        mLottieDrawable.setComposition(LottieCompositionFactory.fromUrlSync(getContext(), url, cacheKey).getValue());
        mLottieDrawable.setRepeatCount(LottieDrawable.INFINITE);

        mLottieDrawable.addAnimatorUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                invalidate();
            }
        });
        mLottieDrawable.start();
nzk0hqpo

nzk0hqpo1#

忘了在我的AndroidManifest中添加Internet权限。而且这段代码对正在开发Lottie的人也很有用。我搜索了很多网站。没有合适的例子来使用LottieDrawable。所以任何人都会从这段代码中受益。

String cacheKey ="LOTTIE_CACHE_KEY";
    mLottieDrawable = new LottieDrawable();
    mLottieDrawable.enableMergePathsForKitKatAndAbove(true);
    mLottieDrawable.setCallback(this);
    /*LottieResult<LottieComposition> result =
            LottieCompositionFactory.fromAssetSync(getContext().getApplicationContext(),
                    "woman_singer.json");
    mLottieDrawable.setComposition(result.getValue());*/

    String url = "https://assets5.lottiefiles.com/packages/lf20_GoeyCV7pi2.json";
    mLottieDrawable.setComposition(LottieCompositionFactory.fromUrlSync(getContext(), url, cacheKey).getValue());
    mLottieDrawable.setRepeatCount(LottieDrawable.INFINITE);

    mLottieDrawable.addAnimatorUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            invalidate();
        }
    });
    mLottieDrawable.start();
hk8txs48

hk8txs482#

可以使用setAnimationFromUrl("url")将lottie json文件作为url传递,如下所示:

ivLottie.setAnimationFromUrl("https://assets5.lottiefiles.com/packages/lf20_GoeyCV7pi2.json")

XML文件:

<com.airbnb.lottie.LottieAnimationView
        android:id="@+id/ivLottie"
        android:layout_width="210dp"
        android:layout_height="160dp"  
        app:lottie_autoPlay="true"
        app:lottie_rawRes="@raw/box_gif" />

相关问题