Java 如何检查ImageView是否加载了来自URL的图片图像
我试图检查Java 如何检查ImageView是否加载了来自URL的图片图像,java,android,android-imageview,picasso,Java,Android,Android Imageview,Picasso,我试图检查ImageView是否加载了图像,以及URL是否实际具有图像资源 ImageView dynamicImageView = new ImageView(context) Picasso.get() .load(myURL) .resize(myWidth, myWidth) .centerCrop() .into(dynamicImageView, new Callback() { @Override public void onSuccess() {
ImageView
是否加载了图像,以及URL是否实际具有图像资源
ImageView dynamicImageView = new ImageView(context)
Picasso.get()
.load(myURL)
.resize(myWidth, myWidth)
.centerCrop()
.into(dynamicImageView, new Callback() {
@Override
public void onSuccess() {
Drawable drawable = dynamicImageView.getDrawable();
boolean hasImage = (drawable != null);
if (hasImage && (drawable instanceof BitmapDrawable)) {
hasImage = ((BitmapDrawable)drawable).getBitmap() != null;
}
}
@Override
public void onError(Exception e) {
}
});
这总是返回true,因为毕加索会自动将默认的可绘制占位符填充到dynamicImageView
中
在URL没有图像资源的情况下,我应该怎样做才能始终得到“真实”的结果
提前感谢大家。您可以使用目标回调:
private Target target = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
}
@Override
public void onBitmapFailed() {
}
}
在加载图像时,您需要编写:
Picasso.with(this).load(myURL).into(target);
仅供参考:
主要用于在加载到视图之前执行图像操作李>onBitmapLoaded()
描述了图像从何处加载,无论是内存、磁盘还是网络Picasso.LoadedFrom
private Target target = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
}
@Override
public void onBitmapFailed() {
}
}
在加载图像时,您需要编写:
Picasso.with(this).load(myURL).into(target);
仅供参考:
主要用于在加载到视图之前执行图像操作李>onBitmapLoaded()
描述了图像从何处加载,无论是内存、磁盘还是网络Picasso.LoadedFrom