有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在Android系统上使用phonegap访问SDCARD中的图片

我已经创建了一个canvas(html5)元素,让用户在上面绘制,绘制完成后,他们可以保存它:canvas.toDataURL("image/png");将 执行,编码的base64 dataURL字符串将存储到文件中。但是我需要让用户查看他的画


问题是:当用户将许多故事字符串保存在文本文件中并且filesystem读取它时,内存将泄漏。
PhoneGap抱怨:java.lang.OutOfMemoryError,因为用户保存了太多的dataURL字符串。由于它们都必须重新加载到一个数组中,所以会发生错误。

我想如果我以image格式(.jpg)而不是base64 dataURL保存用户的图形,它会工作吗

  1. 它能解决内存泄漏问题吗
  2. 如何检索存储在以下路径中的图像:sdcard/story/pics/
    如果我只想访问录制的文件,我可以写:

    var record= new Media(src,onSuccess, onError); where the src could just be: story/rec/something.mp3 但是我不能这样访问图像

  3. 这个解决方案也应该在iOS上运行,因为我必须将应用程序部署到iPad上
    Develop Environment:
    PhoneGap 1.8.0
    安卓4.0.3

共 (1) 个答案

  1. # 1 楼答案

    我在二进制文件方面遇到了类似的问题,坏消息是您无法将二进制数据写入文件系统,因为二进制数据无法通过桥传输到本机代码中

    最后我写了一个插件来进行二进制操作(或者说是三个插件,一个用于iOS,另一个用于Android,第三个用于BlackBerry)

    我不确定是什么原因导致了内存泄漏,但我建议一次只能在内存中保存一幅图片,除非您允许在图像之间进行复制和粘贴,在这种情况下,我会将应用程序限制为同时在内存中保存两幅图像

    不管泄漏的原因是什么,由于大多数现代安卓设备上都有相当多的内存,所以使用所有可用内存都会非常严重