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

我有一个 50 块的 recycleView。该块有两个ImageView。我应该为来自不同 URL 的每个块设置两个图像。当我开始我的程序时,我翻转列表,我的程序变慢了。我认为它会阻止,因为当我滚动列表 recyclerView 时再次转到 URL 以拍摄图像。我对吗?我该如何解决?


这就是我如何从 URL 将图像设置为 recyclerView


URL newurl = new URL(imageString);

Bitmap mIcon_val = BitmapFactory.decodeStream(newurl.openConnection().getInputStream());

holder.myImageView.setImageBitmap(mIcon_val);


www说
浏览 138回答 3
3回答

炎炎设计

您可以使用 picasso 或 glide 来完成此任务-:Glide.with(context).load(model.getVoucher_image()).into(holder.imageview);

牛魔王的故事

您正在使用位图加载图像。在图像视图中加载位图是非常耗费内存的任务。相反,您可以使用第三方库直接从网络 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);

小唯快跑啊

使用 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 从中加载图像drawableGlide.with(this).load(R.drawable.image_name).into(imageView);例子onBindViewHolder 这样做Glide.with(this).load(logoImage).into(holder.logo);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java