我正在使用Picasso库从url加载图片。我使用的代码如下。
Picasso.with(getContext()).load(url).placeholder(R.drawable.placeholder)
.error(R.drawable.placeholder).into(imageView);
我想做的是获取从网址加载的图片。我用了
Drawable image = imageView.getDrawable();
但是,这将始终返回占位符图像,而不是来自url的图像加载。你们有什么想法吗?我应该如何访问刚刚从网址加载的可绘制图片。
提前致谢。
答案 0 :(得分:23)
这是因为图像是异步加载的。完成加载到视图中后,您需要获取drawable:
Target target = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
imageView.setImageBitmap(bitmap);
Drawable image = imageView.getDrawable();
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {}
};
Picasso.with(this).load("url").into(target);
答案 1 :(得分:1)
mImageView.post(new Runnable() {
@Override
public void run() {
mPicasso = Picasso.with(mImageView.getContext());
mPicasso.load(IMAGE_URL)
.resize(mImageView.getWidth(), mImageView.getHeight())
.centerCrop()
.into(mImageView, new com.squareup.picasso.Callback() {
@Override
public void onSuccess() {
Drawable drawable = mImageView.getDrawable();
// ...
}
@Override
public void onError() {
// ...
}
});
}
});