我正在使用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 */
);
答案 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的保存。