天天看点

Picasso(三load加载方法解析)

Picasso(三load加载方法解析)

首先我们在这里可以传入一个url,资源路径等。

public RequestCreator load (@Nullable String path){
        if (path == null) {
            return new RequestCreator(this, null, 0);
        }
        if (path.trim().length() == 0) {
            throw new IllegalArgumentException("Path must not be empty.");
        }
        return load(Uri.parse(path));
    }
           

很明显,我们这个方法会返回一个RequestCreator对象,我们关注以下构造函数

RequestCreator(Picasso picasso, Uri uri, int resourceId) {
if (picasso.shutdown) {
  throw new IllegalStateException(
      "Picasso instance already shut down. Cannot submit new requests.");
}
// 初始化Picasso对象
this.picasso = picasso;
// 创建一个Builder对象
this.data = new Request.Builder(uri, resourceId, picasso.defaultBitmapConfig);
}
           

获得RequestCreator对象之后,同时也就获得了其中的Builder对象,通过RequestCreator的链式调用,设置Builder中的一系列的属性,和我们之前的基本使用就有了吻合。最后就可以通过Builder获取我们之前设置的全部属性。

总结:

这里我们需要知道的是,我们是通过load方法,创建一个RequestCreator对象,通过其链式调用,将属性封装在其中的一个Builder对象中,之后我们就可以通过这个对象获取我们之前设置的所有属性。