Fresco 图片请求库(工具类)

来源:互联网 发布:qq音速网络连接 编辑:程序博客网 时间:2024/06/09 18:28

Fresco文档:

http://fresco-cn.org/docs/supported-uris.html#_

这是SimpleDraweeView 的各种属性:

        现在介绍一些fresco的属性,通过这些属性我们可以很方便的定制一些效果        <com.facebook.drawee.view.SimpleDraweeView            android:id="@+id/my_image_view"            android:layout_width="20dp"   // 不支持wrap_content 如果要设置宽高比, 需要在Java代码中指定setAspectRatio(1.33f);            android:layout_height="20dp"    // 不支持wrap_content             fresco:fadeDuration="300"            fresco:actualImageScaleType="focusCrop"         // 设置图片缩放. 通常使用focusCrop,该属性值会通过算法把人头像放在中间            fresco:placeholderImage="@color/wait_color"         // 下载成功之前显示的图片            fresco:placeholderImageScaleType="fitCenter"            fresco:failureImage="@drawable/error"        // 加载失败的时候显示的图片            fresco:failureImageScaleType="centerInside"            fresco:retryImage="@drawable/retrying"        // 加载失败,提示用户点击重新加载的图片(会覆盖failureImage的图片)            fresco:retryImageScaleType="centerCrop"            fresco:progressBarImage="@drawable/progress_bar"// 提示用户正在加载,和加载进度无关            fresco:progressBarImageScaleType="centerInside"            fresco:progressBarAutoRotateInterval="1000"            fresco:backgroundImage="@color/blue"            fresco:overlayImage="@drawable/watermark"            fresco:pressedStateOverlayImage="@color/red"            fresco:roundAsCircle="false"        // 是不是设置圆圈            fresco:roundedCornerRadius="1dp"        // 圆角角度,180的时候会变成圆形图片            fresco:roundTopLeft="true"            fresco:roundTopRight="false"            fresco:roundBottomLeft="false"            fresco:roundBottomRight="true"            fresco:roundWithOverlayColor="@color/corner_color"            fresco:roundingBorderWidth="2dp"            fresco:roundingBorderColor="@color/border_color"          />

这里简单的封装一个工具类:

import android.content.Context;import android.net.Uri;import com.facebook.drawee.backends.pipeline.Fresco;import com.facebook.drawee.interfaces.DraweeController;import com.facebook.drawee.view.SimpleDraweeView;/** *Fresco 图片加载框架封装工具类  需要添加Fresco library  *<br> 有冲突需要删除jar包 *<br>fresco 中文翻译:http://fresco-cn.org/docs/supported-uris.html#_ */public class FrescoUtils {    private static FrescoUtils instance;    public static FrescoUtils getInstance(){        if(instance==null){            instance=new FrescoUtils();        }        return instance;    }    /**     * 初始化(建议在application)     * @param context     */    public static InitializeFresco(Context context){        Fresco.initialize(context);    }    /**     *  通过URI加载普通图片     * @param simpledraweeview     * @param uri     */    public void LoadWithUrl(SimpleDraweeView simpledraweeview,Uri uri){        simpledraweeview.setImageURI(uri);    }    /**     *  通过URI 加载GIF图片     * @param simpledraweeview     * @param uri     */    public void LoadGif(SimpleDraweeView simpledraweeview,Uri uri){        DraweeController controller=Fresco.newDraweeControllerBuilder()                .setUri(uri)                .setAutoPlayAnimations(true)                .build();        simpledraweeview.setController(controller);    }    //  修改图片尺寸    //  Uri uri = "file:///mnt/sdcard/MyApp/myfile.jpg";    //  int width = 50, height = 50;    //  ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)    //      .setResizeOptions(new ResizeOptions(width, height))    //      .build();    //  PipelineDraweeController controller = Fresco.newDraweeControllerBuilder()    //      .setOldController(mDraweeView.getController())    //      .setImageRequest(request)    //      .build();    //  mSimpleDraweeView.setController(controller);    //    //    //  自动旋转    //  ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)    //      .setAutoRotateEnabled(true)    //      .build();}
0 0
原创粉丝点击