为了账号安全,请及时绑定邮箱和手机立即绑定

当我将来自 Url 的图像设置为 recycleView 时,它变慢了,我该如何解决?

当我将来自 Url 的图像设置为 recycleView 时,它变慢了,我该如何解决?

www说 2023-02-16 17:15:27
我有一个 50 块的 recycleView。该块有两个ImageView。我应该为来自不同 URL 的每个块设置两个图像。当我开始我的程序时,我翻转列表,我的程序变慢了。我认为它会阻止,因为当我滚动列表 recyclerView 时再次转到 URL 以拍摄图像。我对吗?我该如何解决?这就是我如何从 URL 将图像设置为 recyclerViewURL newurl = new URL(imageString);Bitmap mIcon_val = BitmapFactory.decodeStream(newurl.openConnection().getInputStream());holder.myImageView.setImageBitmap(mIcon_val);
查看完整描述

3 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

您可以使用 picasso 或 glide 来完成此任务-:

Glide.with(context).load(model.getVoucher_image()).into(holder.imageview);


查看完整回答
反对 回复 2023-02-16
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

您正在使用位图加载图像。在图像视图中加载位图是非常耗费内存的任务。

相反,您可以使用第三方库直接从网络 URL 加载图像。

这些库之一是 Glide。您只需要将 imageView 和 URL 传递给它,它就会直接加载图像。

Glide.with(context)
   .load("URL HERE")
   .into(imageView);

即使您可以在将图像加载到 imageView 之前调整图像大小,通过这样做,您也可以减少内存消耗。

 RequestOptions requestOptions = new RequestOptions();
 requestOptions.override(120, 120);
 requestOptions.diskCacheStrategy(DiskCacheStrategy.ALL);

 Glide.with(context)
   .load("URL HERE")
   .apply(requestOptions)
   .into(imageView);


查看完整回答
反对 回复 2023-02-16
?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

使用 Glide 高效加载图片。

示例 在应用程序模块中gradle添加此

repositories {
  mavenCentral()
  google()
}

dependencies {
  implementation 'com.github.bumptech.glide:glide:4.9.0'
  annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'}

然后使用 glide 从中加载图像drawable

Glide.with(this).load(R.drawable.image_name).into(imageView);

例子

onBindViewHolder 这样做

Glide.with(this).load(logoImage).into(holder.logo);


查看完整回答
反对 回复 2023-02-16
  • 3 回答
  • 0 关注
  • 87 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信