Android Glide与Fresco图片框架

Fresco特点:

Fresco的Image Pipeline允许你用很多种方式来自定义图片加载过程,比如:

  • 为同一个图片指定不同的远程路径,或者使用已经存在本地缓存中的图片
  • 先显示一个低清晰度的图片,等高清图下载完之后再显示高清图
  • 加载完成回调通知
  • 对于本地图,如有EXIF缩略图,在大图加载完成之前,可先显示缩略图
  • 缩放或者旋转图片
  • 对已下载的图片再次处理
  • SimpleDraweeView
    图像的渐进式呈现

    体积太大2~3M

    也可加载gif、webP

    5.0以下系统,把bitmap保存到ashmen(匿名共享内存机制),不会启动gc,使的界面不会因为gc而卡死,

  • 支持WebP解码,即使在早先对WebP支持不完善的Android系统上也能正常使用!
  • 官方详情地址:https://www.fresco-cn.org/docs/index.html
  • 可以自定义图片形状代码:
  •           android:id="@+id/id_main_sdv"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            fresco:actualImageScaleType="focusCrop"             //加载得到的图片的缩放类型
            fresco:fadeDuration="1000"                          //进度条,占位图片消失,加载图片展现的时间间隔
            fresco:failureImage="@drawable/imgbg"               //加载失败之后显示的图片
            fresco:failureImageScaleType="centerInside"         //图片缩放类型
            fresco:placeholderImage="@drawable/imgbg"           //占位图片(未加载之前显示的图片)
            fresco:placeholderImageScaleType="fitCenter"      
            fresco:progressBarAutoRotateInterval="1000"         //加载进度条图片旋转周期
            fresco:progressBarImage="@drawable/progress_bar"    //加载进度条图片
            fresco:progressBarImageScaleType="centerInside"
            fresco:retryImage="@mipmap/ic_launcher"             //提示重新加载的图片资源
            fresco:retryImageScaleType="centerCrop"
            fresco:backgroundImage="@color/colorWhite"          //背景图片
            fresco:roundAsCircle="false"                        //是否要将图片剪切成圆形
            fresco:viewAspectRatio="1"                          //图片宽高比
            fresco:overlayImage="@drawable/overlay"             //在图片上方覆盖一个图片资源
            fresco:pressedStateOverlayImage="@color/colorBlack"
            fresco:roundedCornerRadius="20dp"                   //圆角角度,
            fresco:roundTopLeft="true"                          //设置哪个角需要变成圆角
            fresco:roundTopRight="false"
            fresco:roundBottomLeft="false"
            fresco:roundBottomRight="true"
            fresco:roundWithOverlayColor="@color/colorWhite"    //圆角部分填充色
            fresco:roundingBorderWidth="2dp"                    //边框宽度
            fresco:roundingBorderColor="@color/colorBlack"      //边框填充色
            />

 

Glide特点:

可以传入activity、fragment,图片的加载会和activity、fragment生命周期一致(比如onPause暂停、onResume重新加载,onDestory销毁)
默认Bitmap格式RGB_565(比ARGB_8888小一半,位图位数越高代表其可以存储的颜色信息越多,当然图像也就越逼真;RGB_565无法显示图片本身的透明度)
Glide加载的大小与imageview一致
可加载gif、WebP
可配置图片动画
体积500 KB

代码:

implementation 'com.github.bumptech.glide:glide:4.9.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'检查一下是否已添加网络权限:
public class imageActivity extends Activity {
    @BindView(R.id.img_iv)
    ImageView imgIv;
    private static URL url;
    //Glide优点缓存,Gif动图
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.image_activity_layou);
        ButterKnife.bind(this);
        
        //view 是需要显示图片的ImageView, url是图片的网络地址。
        try {
            url = new       URL("https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2524970374,1771992642&fm=11&gp=0.jpg");
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
        Glide.with(imgIv.getContext())
                .load(url)
                .placeholder(R.drawable.ic_launcher)
                .into(imgIv);
    }
}

官方详情地址:https://muyangmin.github.io/glide-docs-cn/doc/transitions.html

你可能感兴趣的:(Android,图片框架)