我有一个 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);
牛魔王的故事
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);
小唯快跑啊
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);
添加回答
举报
0/150
提交
取消