您的位置:

最佳方案处理glide IllegalArgumentException("Width and height must both be > 0 or Target#SIZE_ORIGINAL, but given"+ " width: "+ width+ " and height: "+ height+ ", either provide dimensions in the constructor"+ " or call override()")

  发布时间:2024-12-14 16:02:32
IllegalArgumentException异常是由于在使用Glide加载图片时,没有设置正确的图片尺寸而导致的。解决方法为在加载图片时指定正确的目标宽度和高度,或者通过override方法手动指定图片尺寸。示例代码演示了如何使用Glide并解决异常问题。

问题原因

IllegalArgumentException("Width and height must both be > 0 or Target#SIZE_ORIGINAL, but given"+ " width: "+ width+ " and height: "+ height+ ", either provide dimensions in the constructor"+ " or call override()")异常是由于在使用Glide加载图片时,没有设置正确的图片尺寸而导致的。Glide要求在加载图片时,必须提供正确的图片宽度和高度,宽度和高度需要大于0或者设置为Target#SIZE_ORIGINAL。如果没有在构造函数中提供图片尺寸参数,也没有调用override()方法来设置图片尺寸,则会抛出IllegalArgumentException异常。

解决方案

IllegalArgumentException("Width and height must both be > 0 or Target#SIZE_ORIGINAL, but given width: "+ width+ " and height: "+ height+ ", either provide dimensions in the constructor or call override()")异常通常是由于在使用Glide加载图片时没有正确设置图片的宽度和高度而导致的。解决这个问题的方法有两种: 1. 在使用Glide时,确保要么在RequestOptions中通过override()方法设置图片加载的目标宽度和高度,或者在RequestOptions中使用fitCenter()等方法来设置图片的缩放类型,使Glide能够正确计算图片的宽度和高度。 2. 另一种解决方法是在使用Glide时,在加载图片的时候提供正确的目标宽度和高度,以确保Glide能够正确加载并显示图片。 举例来说,可以通过以下方式来使用Glide并解决该异常:


// 指定图片的宽度和高度
Glide.with(context)
    .load(imageUrl)
    .apply(new RequestOptions()
        .override(width, height)
        .centerCrop())
    .into(imageView);

通过上述代码,在加载图片时指定了图片的宽度和高度,同时设置了图片的缩放类型为centerCrop,这样就能够避免IllegalArgumentException异常的出现,确保图片能够正确加载并显示。

具体例子

当在使用 Glide 图片加载库时出现IllegalArgumentException("Width and height must both be > 0 or Target#SIZE_ORIGINAL, but given width: "+ width+ " and height: "+ height+ ", either provide dimensions in the constructor or call override()")异常时,很可能是因为没有正确设置图片的宽度和高度。解决这个问题的方法是在代码中正确设置图片的宽度和高度,或者使用 override() 方法来手动指定图片的尺寸。 以下是一个简单的示例,演示了如何正确使用 Glide 并解决该异常问题:


// 导入 Glide 库
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.bumptech.glide.request.target.ImageViewTarget;
import android.widget.ImageView;

// 在代码中加载图片并设置宽度和高度
String url = "https://example.com/image.jpg";
int width = 500; // 设置图片宽度
int height = 300; // 设置图片高度
ImageView imageView = findViewById(R.id.imageView);

// 使用 RequestOptions 对象设置图片的宽度和高度
RequestOptions options = new RequestOptions()
    .override(width, height); // 设置图片尺寸

// 使用 Glide 加载图片并应用 RequestOptions
Glide.with(context)
    .load(url)
    .apply(options)
    .into(imageView);

在上面的示例中,我们首先导入 Glide 相关的类库。然后,我们指定了要加载的图片 URL,设置了图片的宽度和高度。接着,我们通过 RequestOptions 对象来设置图片的宽度和高度,最后使用 Glide 加载图片并将 RequestOptions 应用于加载过程中。 通过以上的示例代码,我们可以正确使用 Glide 并解决 IllegalArgumentException("Width and height must both be > 0 or Target#SIZE_ORIGINAL") 异常。