Android开源框架之Glide

这个图片加载框架功能比较强大,相比起其他框架大多数开发者使用该框架加载图片。

  • 简介
    (1)使用简单
    (2)可配置度高,自适应程度高
    (3)支持常见图片格式 Jpg png gif webp
    (4)支持多种数据源 网络、本地、资源、Assets 等
    (5)高效缓存策略:支持Memory和Disk图片缓存 默认Bitmap格式采用RGB_565内存使用至少减少一半
    (6)生命周期集成 根据Activity/Fragment生命周期自动管理请求
    (7)高效处理Bitmap 使用Bitmap Pool使Bitmap复用,主动调用recycle回收需要回收的Bitmap,减小系统回收压力
  • 使用步骤
    (1)在build.gradle中添加依赖:compile ‘com.github.bumptech.glide:glide:3.7.0’
    (2)如果项目中没有support-v4库,还需要添加support-v4依赖: compile ‘com.android.support:support-v4:23.3.0’
    (3)如果使用变换,可以添加一个自定义的变换库:
    compile ‘jp.wasabeef:glide-transformations:2.0.1’
    // If you want to use the GPU Filters
    compile ‘jp.co.cyberagent.android.gpuimage:gpuimage-library:1.3.0’
  • 基本用法
    Glide.with()使用
    with(Context context). 使用Application上下文,Glide请求将不受Activity/Fragment生命周期控制。
    with(Activity activity).使用Activity作为上下文,Glide的请求会受到Activity生命周期控制。
    with(FragmentActivity activity).Glide的请求会受到FragmentActivity生命周期控制。
    with(android.app.Fragment fragment).Glide的请求会受到Fragment 生命周期控制。
    with(android.support.v4.app.Fragment fragment).Glide的请求会受到Fragment生命周期控制。
private void initData() {
        //(1)加载网络图片
       Glide.with(this).load("http://img1.imgtn.bdimg.com/it/u=2615772929,948758168&fm=21&gp=0.jpg").into(ivGlide1);

        //(2)加载资源图片
        Glide.with(this).load(R.drawable.atguigu_logo).into(ivGlide2);

        //(3)加载本地图片
        String path = Environment.getExternalStorageDirectory() + "/meinv1.jpg";
        File file = new File(path);
        Uri uri = Uri.fromFile(file);
        Glide.with(this).load(uri).into(ivGlide3);

        // (4)加载网络gif
        String gifUrl = "http://b.hiphotos.baidu.com/zhidao/pic/item/faedab64034f78f066abccc57b310a55b3191c67.jpg";
        Glide.with(this).load(gifUrl).placeholder(R.mipmap.ic_launcher).into(ivGlide4);

        // (5)加载资源gif
        Glide.with(this).load(R.drawable.loading).asGif().placeholder(R.mipmap.ic_launcher).into(ivGlide5);

        //(6)加载本地gif
        String gifPath = Environment.getExternalStorageDirectory() + "/meinv2.jpg";
        File gifFile = new File(gifPath);
        Glide.with(this).load(gifFile).placeholder(R.mipmap.ic_launcher).into(ivGlide6);

        //(7)加载本地小视频和快照
        String videoPath = Environment.getExternalStorageDirectory() + "/video.mp4";
        File videoFile = new File(videoPath);
        Glide.with(this).load(Uri.fromFile(videoFile)).placeholder(R.mipmap.ic_launcher).into(ivGlide7);

        //(8)设置缩略图比例,然后,先加载缩略图,再加载原图
        String urlPath = Environment.getExternalStorageDirectory() + "/meinv1.jpg";
        Glide.with(this).load(new File(urlPath)).thumbnail(0.1f).centerCrop().placeholder(R.mipmap.ic_launcher).into(ivGlide8);

        //(9)先建立一个缩略图对象,然后,先加载缩略图,再加载原图
        DrawableRequestBuilder thumbnailRequest = Glide.with(this).load(new File(urlPath));  
        Glide.with(this).load(Uri.fromFile(videoFile)).thumbnail(thumbnailRequest).centerCrop().placeholder(R.mipmap.ic_launcher).into(ivGlide9);
    }
  • 常用方法介绍

在这里插入图片描述
在这里插入图片描述

发布了61 篇原创文章 · 获赞 0 · 访问量 871

猜你喜欢

转载自blog.csdn.net/qq_36828822/article/details/103887342