我创建了一个Android应用程序,它从Gallery中选择一张图片并显示预览。
@Override
public void onClick(View v) {
if (v.getId()== R.id.button){
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_PICK);
startActivityForResult(Intent.createChooser(intent,
"Select Picture"), SELECT_PICTURE);
}
选择图像后,应显示预览。
然而,它只是第一次有效。稍后当我点击它时,会显示outOfMemoryException
答案 0 :(得分:2)
在android中使用位图会花费你很多内存,因为内存泄漏需要引起人们的注意。
你可以随时使用
System.gc()
垃圾收集并释放一些内存。
或
bitmap.recycle();
在我开发图像编辑应用程序时使用了这些博客文章。
答案 1 :(得分:1)
在android中使用位图通常会抛出OutOfMemory错误。位图需要正确处理。您可能希望查看以下专门用于图像加载和在android中使用位图的库:
https://github.com/nostra13/Android-Universal-Image-Loader
https://github.com/novoda/ImageLoader
您还可以实现自己的图像加载器。您可以轻松找到相应的代码。
答案 2 :(得分:0)
你可能正在缓存很多位图,所以你可以使用ImageLoader
并执行以下操作:
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
this).memoryCache(new WeakMemoryCache())
.discCache(new UnlimitedDiscCache(new File("/cache"))).build();
在不再需要它们之后也尝试以某种方式释放位图