【问题标题】:How to save pictures in a safe storage and access them in android?如何将图片保存在安全存储中并在 android 中访问它们?
【发布时间】:2011-11-17 08:10:22
【问题描述】:

在我的应用程序中,我想从URL 下载图像,然后将它们保存在Android 设备的安全区域中。但我不知道Android 中的存储选项。我不想使用sdcard 或其他外部存储。

【问题讨论】:

  • 建议使用内部存储,但由于这在某些设备上受到限制,您为什么不想使用 SDCard?如果是出于隐私原因 - 您可以在将数据保存到 SDCard 之前对其进行加密
  • 我想,我会使用银河标签。你能告诉我有关该设备内部存储的详细信息吗...

标签: android image url storage


【解决方案1】:

虽然将应用程序数据保存在设备有限的内部存储中并不是一个好习惯,但您可以这样做。

查看官方谷歌文档以将数据保存在内部设备存储中,这将为您提供有关在内部存储内容的指导。

http://developer.android.com/guide/topics/data/data-storage.html#filesInternal

【讨论】:

  • 我将从一个 url 和我的应用程序中下载图像。但我想保存它们然后使用。因为我不想一次又一次地下载它们。你能告诉我最好的方法吗?我还阅读了有关内容提供者的信息。它们是有效的还是不相关的?
  • 您需要对图片进行延迟加载。在您的情况下,您需要下载它们并将它们存储在应用程序的私有本地存储中以供以后使用。它更像是您图片的缓存机制。最好的方法是使用 AsyncTask 在后台下载图像并将其保存以供以后使用。您可以创建自己的机制或检查一些示例以从这里github.com/thest1/LazyList获取有关 ListView 中延迟加载的一些线索@跨度>
  • 如何将图片存储在应用程序的私有本地存储中。 “最好的方法是使用 AsyncTask 在后台下载图像并将其保存以备后用”我如何保存它们或在哪里保存它们。
  • 好吧,实际上没有自动化的方法可以做到这一点,您需要手动执行并实现自己的逻辑和算法来获取数据并将其保存在文件或文件夹中。对于您的情况,最好创建一个文件夹在内部存储中为您的应用程序存储图像。
【解决方案2】:

【讨论】:

  • 你能解释一下存储和缓存之间的区别吗?
  • 缓存使用不同的功能来访问文件,应用程序应该限制在1MB左右,当系统需要更多空间时可以删除......存储充当普通文件系统,但存储在受保护的地方,只有您的应用可以访问
【解决方案3】:

我想这可能对你有用(就像对我一样):https://github.com/thest1/LazyList

【讨论】:

  • @Arslan:确实如此。这是解决此问题的最佳方法,Fedor 实施了一个很好的解决方案。
  • 请仔细阅读问题。问题即将在 SDCard 上 DOT 保存图像
  • 好吧好吧。我会更好地解释我,也许会问那个人这个特殊的选择。我的建议是使用外部存储而不是其他方法,因为内部存储器经常过载,这可能会导致重大问题。
【解决方案4】:

然后,您可以将图像 > 位图 > ToBytes 转换为 Base64 字符串对象。这样,您将获得图像的字符串表示形式,您可以简单地将其存储到 SQLlite DB 中。

警告:这可能会降低图像质量。

将drawable转换为Base64字符串。

Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);

byte[] b = baos.toByteArray();
imgString = Base64.encodeBytes(b);

将String转换回drawable。从 SQLite DB 中获取字符串,然后

byte[] b = Base64.decode(imgString);
Bitmap bc = BitmapFactory.decodeByteArray(b, 0, b.length);
Drawlable drawabe = new BitmapDrawable(bc).getCurrent();

【讨论】:

  • 我不想使用 sd 卡。我想使用只能由应用程序本身访问的内部存储。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-30
  • 1970-01-01
  • 1970-01-01
  • 2019-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多