美文网首页View
android加载动态webp图片

android加载动态webp图片

作者: xiaotimel | 来源:发表于2019-12-10 18:05 被阅读0次

    对于安装大小的优化,占用最多的就是图片资源。把图片资源文件替换webp格式可以大大减少包的体积。

    webp是一种图片文件格式,webp默认只支持Android4.0以上。但是ImageView加载不了动态的webp,我们可以使用facebook 的 fresco加载动态的webp.

    引入fresco依赖库
    api 'com.facebook.fresco:fresco:1.13.0'
    
    // 支持 WebP (静态图+动图),需要添加
    
    api 'com.facebook.fresco:animated-webp:1.13.0'
    
    api 'com.facebook.fresco:webpsupport:1.13.0'
    

    //初始化
    Fresco.initialize(getApplication().getApplicationContext());

    /**
    
    * Fresco 加载本地webp图片
    
    * @param draweeView
    
    * @param resId
    
    */
    
    public static void loadDrawable(SimpleDraweeView draweeView, @DrawableRes int resId) {
    
    Uri uri = Uri.parse(imageTranslateUri(draweeView.getContext(), resId));
    
        DraweeController controller = Fresco.newDraweeControllerBuilder()
    
    .setUri(uri)
    
    .setAutoPlayAnimations(true)
    
    .setOldController(draweeView.getController())
    
    .build();
    
        draweeView.setController(controller);
    
    }
    
    /**
    
    * Fresco 加载webp图片
    
    * @param draweeView
    
    * @param imageUrl
    
    */
    
    public static void loadWebpImage(SimpleDraweeView draweeView, String imageUrl) {
    
    DraweeController controller = Fresco.newDraweeControllerBuilder()
    
    .setUri(imageUrl)
    
    .setAutoPlayAnimations(true)
    
    .setOldController(draweeView.getController())
    
    .build();
    
        draweeView.setController(controller);
    
    }
    
    
    
    
    
    
    
    /**
    
    * drawable路径转换成 url
    
    * @param context
    
    * @param resId
    
    * @return
    
    */
    
    public static StringimageTranslateUri(Context context, int resId) {
    
    Resources r = context.getResources();
    
        Uri uri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE +"://" + r.getResourcePackageName(resId) +"/" + r.getResourceTypeName(resId) +"/" + r.getResourceEntryName(resId));
    
        return uri.toString();
    
    }
    

    相关文章

      网友评论

        本文标题:android加载动态webp图片

        本文链接:https://www.haomeiwen.com/subject/mtgggctx.html