Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检查ImageView是否加载了来自URL的图片图像_Java_Android_Android Imageview_Picasso - Fatal编程技术网

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
    描述了图像从何处加载,无论是内存、磁盘还是网络

您可以使用毕加索API的目标回调。您可以使用毕加索API的目标回调