像应用程序这样的图库中的内存不足问题
Out of Memory issue in a gallery like application
我正在尝试创建一个包含大量来自网络的图像的应用程序 services.I 我正在使用 Picasso 库将图像加载到图库中,例如 [=13] =]RecyclerView 延迟加载并将 URL 的列表传递给滑块 activity 和 ViewPager 我正在处理很多图像,所以在几次之后幻灯片开始抛出 Out of Memory(OOM) exception.I 已经尝试使用 Glide 它正在拉伸图像所以我坚持使用 Picasso.Tried 很多方法,比如使用大堆和允许硬件 access.Any 方法来 identify 和 handle 这个问题会很有帮助。
Picasso.with(context)
.load(image.getImageURL())
.memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
.skipMemoryCache()
.placeholder(R.drawable.poster_default)
.error(R.drawable.poster_default)
.into(mImageView);
Android 对图像使用位图,这意味着添加大图像将消耗大量内存。我在我的项目中所做的是将 fit()
添加到 Picasso 调用中,这样它会为我调整图像大小,而不是将其全尺寸加载到内存中。
尝试下面的操作,看看它是否已修复
Picasso.with(context)
.load(image.getImageURL())
.fit()
.centerCrop()
.memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
.skipMemoryCache()
.placeholder(R.drawable.poster_default)
.error(R.drawable.poster_default)
.into(mImageView);
同意前面的回答。您也可以尝试使用 RGB_565 配置。此配置的图像小两倍
Picasso picasso = new Picasso.Builder(this)
.defaultBitmapConfig(Bitmap.Config.RGB_565)
.build();
并将此实例设置为毕加索
Picasso.setSingletonInstance(picasso);
代码段应该放在android.app.Applicationclass
中的onCreate方法中
我正在尝试创建一个包含大量来自网络的图像的应用程序 services.I 我正在使用 Picasso 库将图像加载到图库中,例如 [=13] =]RecyclerView 延迟加载并将 URL 的列表传递给滑块 activity 和 ViewPager 我正在处理很多图像,所以在几次之后幻灯片开始抛出 Out of Memory(OOM) exception.I 已经尝试使用 Glide 它正在拉伸图像所以我坚持使用 Picasso.Tried 很多方法,比如使用大堆和允许硬件 access.Any 方法来 identify 和 handle 这个问题会很有帮助。
Picasso.with(context)
.load(image.getImageURL())
.memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
.skipMemoryCache()
.placeholder(R.drawable.poster_default)
.error(R.drawable.poster_default)
.into(mImageView);
Android 对图像使用位图,这意味着添加大图像将消耗大量内存。我在我的项目中所做的是将 fit()
添加到 Picasso 调用中,这样它会为我调整图像大小,而不是将其全尺寸加载到内存中。
尝试下面的操作,看看它是否已修复
Picasso.with(context)
.load(image.getImageURL())
.fit()
.centerCrop()
.memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
.skipMemoryCache()
.placeholder(R.drawable.poster_default)
.error(R.drawable.poster_default)
.into(mImageView);
同意前面的回答。您也可以尝试使用 RGB_565 配置。此配置的图像小两倍
Picasso picasso = new Picasso.Builder(this)
.defaultBitmapConfig(Bitmap.Config.RGB_565)
.build();
并将此实例设置为毕加索
Picasso.setSingletonInstance(picasso);
代码段应该放在android.app.Applicationclass
中的onCreate方法中