我们正在为文档扫描程序开发一个Android应用程序。
此应用程序具有编辑图像的功能,如添加魔幻色,灰色模式,黑白色等。此应用程序可以选择扫描" N"页数并在最后将其转换为PDF。
应用程序的流程是第一个活动是拍摄图像和第二个活动用于裁剪图像,第三个活动用于编辑图像,如应用魔术色,灰色模式和黑/白转换。在第三个活动中我们添加了按钮,单击它将返回到第一个活动并继续相同的过程。一旦扫描完所有图像,第三个活动是haivng done按钮,单击它将创建pdf并关闭应用程序。 / p>
现在问题是在扫描了大约35页之后,它会抛出内存不足错误,因为我们始终将原始和修改后的位图保留为代码中的List,因为用户可以返回到以前的图像并进行编辑。那时我还需要原始版本的图片。
请你帮我解决下面的问题。
1)在这种情况下保留位图的位置? 2)有没有办法将图像存储在外部卡中并根据需要每次读取它?
提前致谢。
答案 0 :(得分:0)
将位图存储为缓存。
out = new FileOutputStream(filename);
bmp.compress(Bitmap.CompressFormat.PNG, 100, out);
使用缓存目录存储此类文件而不是持久存储它是可取的。 getCacheDir(
)将返回目录的路径。