使用Fresco加载gif动画

首先导入基础库:

compile 'com.facebook.fresco:fresco:1.11.0'

需要加载动画时,必须再导入一个动画加载库:

compile 'com.facebook.fresco:animated-gif:1.11.0'

并且,一定要注意,一定要注意,一定要注意,这俩个版本号一定要一致,否则,会报以下错误:

E/AndroidRuntime: FATAL EXCEPTION: Thread-10
                                                                 Process: com.gobest.hngh, PID: 14897
                                                                 java.lang.NoSuchFieldError:
																 No field forceOldAnimationCode 
																 of type Z in class
																 Lcom/facebook/imagepipeline/common/ImageDecodeOptions; or its superclasses (declaration of 'com.facebook.imagepipeline.common.ImageDecodeOptions' appears in /data/app/com.gobest.hngh-1/base.apk:classes3.dex)
                                                                     at com.facebook.imagepipeline.animated.factory.AnimatedImageFactoryImpl.decodeGif(AnimatedImageFactoryImpl.java:84)
                                                                     at com.facebook.imagepipeline.decoder.ImageDecoder.decodeGif(ImageDecoder.java:110)
                                                                     at com.facebook.imagepipeline.decoder.ImageDecoder.decodeImage(ImageDecoder.java:84)
                                                                     at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder.doDecode(DecodeProducer.java:194)
                                                                     at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder.access$200(DecodeProducer.java:97)
                                                                     at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder$1.run(DecodeProducer.java:129)
                                                                     at com.facebook.imagepipeline.producers.JobScheduler.doJob(JobScheduler.java:207)
                                                                     at com.facebook.imagepipeline.producers.JobScheduler.access$000(JobScheduler.java:27)
                                                                     at com.facebook.imagepipeline.producers.JobScheduler$1.run(JobScheduler.java:78)
                                                                     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
                                                                     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
                                                                     at com.facebook.imagepipeline.core.PriorityThreadFactory$1.run(PriorityThreadFactory.java:43)
                                                                     at java.lang.Thread.run(Thread.java:761)

然后,使用以下方法(两种方法,可选其中yizh一种),加载gif图片展示:

方法一:

DraweeController mDraweeController = Fresco.newDraweeControllerBuilder()
                    .setAutoPlayAnimations(true)
                    //加载drawable里的一张gif图
                    .setUri(Uri.parse("res://" + mContext.getPackageName() + "/" + R.mipmap.loading_gif))//设置uri
                    .build();
            //设置Controller
            drawview.setController(mDraweeController);

方法二:

 Uri uri = new Uri.Builder().scheme(UriUtil.LOCAL_RESOURCE_SCHEME).path(String.valueOf(R.mipmap.loading_gif)).build();
            DraweeController controller = Fresco.newDraweeControllerBuilder()
                    .setUri(uri)
                    .setAutoPlayAnimations(true)
                    .build();
            drawview.setController(controller);

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值