如何将图像从Amazon S3下载并保存到图像视图

时间:2016-08-19 02:01:58

标签: java android amazon-s3 imageview

我正在使用Amazon S3服务Android API将图像上传到服务器。当我使用他们的代码再次下载图像时,方法参数要求我传递一个文件以保存此图像,但我想将此图像上传到图像视图。我怎么能把它变成一个可绘制的?

这是方法:

TransferObserver observer = transferUtility.download(
MY_BUCKET,     /* The bucket to download from */
OBJECT_KEY,    /* The key for the object to download */
MY_FILE        /* The file to download the object to */
);

1 个答案:

答案 0 :(得分:3)

所以你需要在系统上创建一个java.io.File。你可以这样做:

File outputDir = context.getCacheDir();
File imageFile = File.createTempFile("prefix", "extension", outputDir);

然后你可以调用亚马逊s3代码:

TransferObserver observer = transferUtility.download(
MY_BUCKET,     /* The bucket to download from */
OBJECT_KEY,    /* The key for the object to download */
MY_FILE        /* The file to download the object to */
);

请务必同时创建 TransferListener ,以便了解文件何时下载。

然后您可以将文件转换为如下位图:

Bitmap bitmap = BitmapFactory.decodeFile(imageFile.getAbsolutePath());
mImageView.setImageBitmap(bitmap);

您也可以使用Picasso或其他图像处理库之类的东西来提供帮助。他们只需要能够使用文件,因为这也是S3的保存。