高级加载
本篇文章介绍一下Picasso其他加载图片的方式。
从Resources加载图片
Picasso可以从本地资源加载图片,除了可以给一个String类型的Url参数之外,你可以给一个int类型的参数。
int resourceId = R.mipmap.ic_launcher;
Picasso
.with(context)
.load(resourceId)
.into(imageViewResource);
从File加载图片
当你想让用户从本地相册选择一张图片的时候,那么下面这个方法将会非常有用。这时,只要把参数换成File对象就可以了,下面是例子:
File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "Running.jpg");
Picasso
.with(context)
.load(file)
.into(imageViewFile);
从Uri中加载图片
当然,你也可以从Uri中加载图片,
Uri uri = resourceIdToUri(context, R.mipmap.future_studio_launcher);
Picasso
.with(context)
.load(uri)
.into(imageViewUri);
要想获得一个Uri,你可以参照下面代码:
public static final String ANDROID_RESOURCE = "android.resource://";
public static final String FOREWARD_SLASH = "/";
private static Uri resourceIdToUri(Context context, int resourceId) {
return Uri.parse(ANDROID_RESOURCE + context.getPackageName() + FOREWARD_SLASH + resourceId);
}
当然,你不用特意将resourceId转换成Uri,只是资源恰好是Uri的时候,直接使用Uri类型的参加加载图片即可。