【问题标题】:Image library to download and show images from Amazon S3用于从 Amazon S3 下载和显示图像的图像库
【发布时间】:2015-08-08 09:54:11
【问题描述】:

我需要在我的 android 应用程序中创建一个流畅而漂亮的图片库(GridView 中的图片,并且每个图片都可以在 viewpager 中放大(向左/向右滑动))。

我的图片可以在 Amazon S3 上下载。

现在,我的问题是从 S3 下载图片并显示它们的最佳方式是什么。目前,我正在从 S3 下载图片(如果它们尚未在 sd 卡上,它们的库 TransferManager 在异步任务中),一旦下载到 SD 卡中的特定文件夹,我将通过 UNiversalImageLoader 库显示图像.但是我发现这个过程有点慢,而且不是那么顺利,当要加载一些图像时(即使它们已经下载到 sd 卡),应用程序会有点错误。我应该在我的过程中改变什么?用amazon生成动态url,然后通过库下载会更好吗?是不是 File.exists 检查(看我是否必须下载图片)很慢?

我的画廊需要以下功能: - 在画廊(gridview)中查看图像 - 查看图像是否在 sd 卡上,如果不是从 s3 下载,如果在 sd 卡上,则在图库中显示它们 - 下载到特定的 SD 卡位置 - 在 vi​​ewpager 中查看每个图像(向左/向右滑动)

感谢您的帮助,

亨利

【问题讨论】:

    标签: android image amazon-s3


    【解决方案1】:

    您可以使用Picasso 库。它用于加载和缓存图像,您不必管理图像缓存,该库会为您完成。示例如下,

    Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);
    

    【讨论】:

    • 它是否将图像缓存在磁盘上?如何使用它从 amazon s3 下载图像?
    • 将您的亚马逊 s3 图像网址作为参数提供给 load() 函数。它将下载并缓存图像。
    • 是的,但是我必须生成一个动态 url,例如 1 分钟可用(因为图像是私有的),所以你认为缓存可以与动态 url 一起正常工作吗?我们可以指定磁盘上的特定位置进行缓存吗?
    • Picasso 会自动执行此操作。
    • 好的,很好,谢谢 :) 我在这个解决方案中看到的唯一问题是,如果图像已经下载并且可以显示,如何避免生成动态 URL(这需要几秒钟)。 . 我们将通过为每张图片生成每个动态 URL 来浪费时间.. 或者我们必须保留链接的副本?
    猜你喜欢
    • 1970-01-01
    • 2015-09-06
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多