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对象中,之后我们就可以通过这个对象获取我们之前设置的所有属性。