因为动态的webp使用的也越来越多了,所以这里记录一种加载处理的办法。目前常用的Android图片加载库,只有fresco是可以直接加载animated webp的。那么如何处理呢?记录一下,不然坑都白踩了。本质上webp和gif都是一组图片组成的连续图片,如果要单独解析每一帧怎么办呢。
Android支持
如果要拿到webp的第一帧,在Android以上是可以直接使用如下这种方法,默认取的是第一帧,但是,这种方法只有在8.0及以上才有用。
Bitmap bitmap = BitmapFactory.decodeFile(filename);
fresco控制animated webp
添加fresco支持webp的方法是:
implementation 'com.facebook.fresco:fresco:1.13.0'
implementation 'com.facebook.fresco:webpsupport:1.13.0'
//implementation 'com.facebook.fresco:animated-gif:1.13.0'
添加之后就可以直接加载webp了,也可以设置自动开始播放,如下:
ImageRequestBuilder imageRequestBuilder = ImageRequestBuilder.newBuilderWithSource(uri);
PipelineDraweeControllerBuilder builder = Fresco.newDraweeControllerBuilder();
builder.setImageRequest(imageRequestBuilder.bu