Glide4-入门教程-2-占位符的使(placeholder, error, fallback)

作者: android 发布时间: 2018-02-07 浏览: 8694 次 编辑

目录:

1,Glide4-入门教程-1-环境配置和基础使用

2,Glide4-入门教程-2-占位符的使(placeholder, error, fallback)


一、简介

    这一节主要是讲,Glide4中占位图的使用方法,包括(placeholder, error,fallback)三种占位图

二、占位符定义和类型

    1,定义:

    占位符是当请求正在执行时被展示的 Drawable 。当请求成功完成时,占位符会被请求到的资源替换。如果被请求的资源是从内存中加载出来的,那么占位符可能根本不会被显示。

    2,类型:

        1)placeholder       //  正在请求图片的时候展示的图片

        2)error                //  如果请求失败的时候展示的图片 (如果没有设置,还是展示placeholder的占位符)

        3)fallback            //  如果请求的url/model为 null 的时候展示的图片 (如果没有设置,还是展示placeholder的占位符)

三、用法

     有两种方法设置,一是RequestOptios中设置(重点介绍),二是利用GlideApp直接展示。如下面的实例

1,placeholder

        占位符是当请求正在执行时被展示的 Drawable 。当请求成功完成时,占位符会被请求到的资源替换。如果被请求的资源是从内存中加载出来的,那么占位符可能根本不会被显示。如果请求失败并且没有设置 error Drawable ,则占位符将被持续展示。类似地,如果请求的url/model为 null ,并且 error Drawable 和 fallback 都没有设置,那么占位符也会继续显示。


        在RequestOption设置

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    
    String imageUrl  = "https://www.niwoxuexi.com/statics/images/nougat_bg.png";
    ImageView imageView = findViewById(R.id.image_view);
    RequestOptions options = new RequestOptions()
                            .placeholder(R.drawable.ic_launcher)
                         //   .placeholder(new ColorDrawable(Color.BLACK))   // 或者可以直接使用ColorDrawable
                            ;
    Glide.with(this)
            .load(imageUrl)
            .apply(options)
            .into(imageView);
}

        或者 GlideApp (下面两种就不介绍GlideApp方式了)

GlideApp.with(this)
        .load(url)
        .placeholder(R.drawable.ic_launcher)
        //.placeholder(new ColorDrawable(Color.BLACK))        // 或者可以直接使用ColorDrawable
        .into(view);

 2,error 

    error Drawable 在请求永久性失败时展示。error Drawable 同样也在请求的url/model为 null ,且并没有设置 fallback Drawable 时展示。

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        String imageUrl  = "https://www.niwoxuexi.com/statics/images/nougat_bg.png";
        ImageView imageView = findViewById(R.id.image_view);
        RequestOptions options = new RequestOptions()
//                .error(new ColorDrawable(Color.BLUE))   // 用ColorDrawable或者下面的资源文件
                .error(R.drawable.ic_error);
        Glide.with(this)
                .load(imageUrl)
                .apply(options)
                .into(imageView);
        
    }

3,  fallback

fallback Drawable 在请求的url/model为 null 时展示。
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        String imageUrl  = "https://www.niwoxuexi.com/statics/images/nougat_bg.png";
        ImageView imageView = findViewById(R.id.image_view);
        RequestOptions options = new RequestOptions()
//                .fallback(new ColorDrawable(Color.BLUE))   // 用ColorDrawable或者下面的资源文件
                .fallback(R.drawable.ic_fallback);
        Glide.with(this)
                .load(imageUrl)
                .apply(options)
                .into(imageView);
    }

4,最后来段三种占位符同时用的代码

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    String imageUrl  = "https://www.niwoxuexi.com/statics/images/nougat_bg.png";
    ImageView imageView = findViewById(R.id.image_view);
    RequestOptions options = new RequestOptions()
            .placeholder(R.drawable.ic_launcher)
            .error(R.drawable.ic_error)
            .fallback(R.drawable.ic_fallback);
    Glide.with(this)
            .load(imageUrl)
            .apply(options)
            .into(imageView);
}