【问题标题】:Android best practice - download picturesAndroid最佳实践——下载图片
【发布时间】:2015-09-25 11:04:52
【问题描述】:

你会如何解决这个问题:

我的应用程序应该下载不同的图片包(最多包含 300 个 png,每个大约 20 kb)并将图片存储在手机上,以便我可以显示它们。

我想把图片上传到网上的某个地方,这样我每次都可以更改它们,用户可以享受最新的图片。 (我上传的图片不是用应用程序) 我读到将它们存储在 sqlite 数据库中并不是最好的选择。

目前我正在将图片存储在应用程序中,但是我不知道如何在不需要更新整个应用程序的情况下立即上传和替换所有应用程序上的图片。

我不需要代码或其他东西,所以不要浪费你宝贵的时间,只是一些一般性的提示,你将在哪里和如何在线存储图片,以及 android 如何轻松下载图片。

【问题讨论】:

  • 通常最佳实践问题在 SO 中并不受欢迎,因此您最好分享至少一些代码来展示您迄今为止所尝试的内容。无论如何,看看毕加索图书馆,它是解决您问题的一种优雅方式。
  • 您可以将图片上传并保存在web或文件系统中,并将相应的路径保存在sqllite db中。要由您更改图片,您可以将其保存在应用程序可以连接的服务器的文件系统中,您可以在那里更改它们。下载将只是在上传期间从存储在 sqlite db 中的路径中读取图像/缓冲区。
  • 稍后我会写信给你。我刚刚完成了一个加载图像并将其保存到缓存的视图。
  • @EdsonMenegatti 谢谢你,毕加索图书馆看起来绝对可以解决我的部分问题!
  • @ssh 谢谢你,我真的很感激!

标签: java android image sqlite android-download-manager


【解决方案1】:

看看 Glide 或 Picasso 库。这些对于图像的线程安全下载非常容易使用。

就个人而言,我只是在 imgur 上获取/存储图像。

如果您要上传专用数据库,则必须设置一个。一些常见的是亚马逊、谷歌等。有很多。

【讨论】:

  • 是的,看来毕加索图书馆是解决这个问题的绝对必要条件!
【解决方案2】:

您可以使用Picasso 在Android 中从网络下载图像。对于存储图像,您可以选择 Amazon S3 或 Google 云存储。

【讨论】:

  • 感谢您的帮助。您还知道免费在线存储图像的选项吗? (如果有的话……)
【解决方案3】:

看看this的回答。在这个答案中,毕加索库用于处理图像下载。 Picasso 摆脱了处理图像下载的大量编码和测试。

在我正在进行的一个项目中,我们使用 Amazon S3 来存储我们的图片,它非常可靠并且是目前的 goto 解决方案之一。

据我所知,Snapchat 和其他一些大公司使用 S3 来存储他们的图片! 它也很便宜,而且我相信他们在一定程度上可以免费托管。

This 是他们的安卓 API 指南。

我们使用名为File Picker 的服务来处理从amazonS3 上传和下载,它减少了很多工作,但我不认为这是一项免费服务。

【讨论】:

  • 感谢您的输入,链接似乎包含很多有用的信息来解决我的问题!
【解决方案4】:

不确定下载包是否比下载单个图片更好(存档不会为您节省太多空间)。

至于您的问题,您可以制作某种 API,您将从您的应用程序中查询,即使是托管在某处且内容不断变化的平面文件也可以使用。您的应用可以定期检查新地址以从中下载图片(假设它会改变)。

另一种方法是使用推送消息 - 通过 GCM 发送推送,您的应用将收到该推送,通知它们有可用的新内容。它甚至可以在应用关闭时工作。

【讨论】:

  • 感谢您的回答!您能否更具体地说明制作此类 API 的工作原理以及在何处托管此平面文件? GCM 听起来很有趣,这绝对是一种选择
  • 嗯,你需要一个服务器来托管它,根据你产生的流量,你也许可以找到一个免费的。在服务器上放置一个可以说的 json 文件应该不会太贵。或者,您可以用您精通的语言编写常规 API,但对于这样一个简单的情况,这可能是矫枉过正。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多