画布:试图在 android.view.DisplayListCanvas.throwIfCannotDraw 上绘制太大(144609280bytes)位图

dev*_*v90 5 android android-layout picasso android-glide

我从网络服务获取图像,我按照以下步骤在 imageView 中显示它。

Picasso.with(getApplicationContext()).load(imageURL).fit().centerCrop().into(ivNews);
Run Code Online (Sandbox Code Playgroud)

2 天前2048X1600在服务器上上传了分辨率图像,突然应用程序开始崩溃,出现此异常Canvas: trying to draw too large(144609280bytes) bitmap

有可能是服务器上传的图片比上述分辨率高,以后服务器也可以上传更多的高分辨率图片。

我读了这篇文章,它提到glide在性能方面比毕加索更快更好,

它还提到如果你使用,.fit().centerCrop()那么性能会更好,但我已经在使用这些,并收到这些错误消息

我想通过使用毕加索来解决这个问题

Sri*_*Raj 16

如果scaleDown()图像较大,您可以使用缩放图像。你可以像下面那样使用它。

Picasso  
.with(context)
.load(<image_url>)
.resize(2048, 1600)
.onlyScaleDown() // the image will only be resized if it's bigger than 2048x 1600 pixels.
.into(<image_view>);
Run Code Online (Sandbox Code Playgroud)