java如何在Android系统上使用phonegap访问SDCARD中的图片
我已经创建了一个canvas
(html5)元素,让用户在上面绘制,绘制完成后,他们可以保存它:canvas.toDataURL("image/png");
将
执行,编码的base64 dataURL字符串将存储到文件中。但是我需要让用户查看他的画
问题是:当用户将许多故事字符串保存在文本文件中并且filesystem
读取它时,内存将泄漏。
PhoneGap抱怨:java.lang.OutOfMemoryError
,因为用户保存了太多的dataURL字符串。由于它们都必须重新加载到一个数组中,所以会发生错误。
我想如果我以image
格式(.jpg)而不是base64 dataURL保存用户的图形,它会工作吗
- 它能解决内存泄漏问题吗李>
如何检索存储在以下路径中的图像:
sdcard/story/pics/
?
如果我只想访问录制的文件,我可以写:var record= new Media(src,onSuccess, onError); where the src could just be: story/rec/something.mp3
但是我不能这样访问图像- 这个解决方案也应该在iOS上运行,因为我必须将应用程序部署到iPad上
Develop Environment
:
PhoneGap 1.8.0
安卓4.0.3
# 1 楼答案
我在二进制文件方面遇到了类似的问题,坏消息是您无法将二进制数据写入文件系统,因为二进制数据无法通过桥传输到本机代码中
最后我写了一个插件来进行二进制操作(或者说是三个插件,一个用于iOS,另一个用于Android,第三个用于BlackBerry)
我不确定是什么原因导致了内存泄漏,但我建议一次只能在内存中保存一幅图片,除非您允许在图像之间进行复制和粘贴,在这种情况下,我会将应用程序限制为同时在内存中保存两幅图像
不管泄漏的原因是什么,由于大多数现代安卓设备上都有相当多的内存,所以使用所有可用内存都会非常严重