使用Picasso从AWS加载图像文件

时间:2016-04-08 01:58:57

标签: android amazon-s3 picasso

毕加索的新手。我尝试使用Picasso将存储在AWS(特别是S3)上的图像加载到我的Android应用程序中但是我一直在我的logcat中得到一个没有错误的空白图像,并且通过相关代码行的一般调试对我来说没有什么明显的

图片存储在处于开发模式且当前公开的AWS上,因此它不应该是登录等问题。我的清单中也启用了互联网权限。

当我在互联网上保存随机图像链接时,代码确实有效,但我注意到当我使用浏览器转到这些链接时,它会打开一个只显示该图像的页面。但是,S3上的数据库设置为自动下载文件而不是显示这样的页面。也许这就是我问题的原因?

以下是我的代码的两个版本,两者都没有适用于我在AWS上的图像(请注意我用AWSLink将我的真实链接替换为AWS,但我的实际代码使用真实链接):

版本1

mApartmentImageView = (ImageView) v.findViewById(R.id.details_page_apartment_picture);  
Picasso.with(getActivity()).load("//AWSLink.jpg").into(mApartmentImageView);

版本2(尝试考虑自动下载文件)

mApartmentImageView = (ImageView) v.findViewById(R.id.details_page_apartment_picture);
String path = "//AWSLink.jpg";
Picasso.with(getActivity()).load(new File(path)).into(mApartmentImageView);

1 个答案:

答案 0 :(得分:0)

String path =“//AWSLink.jpg”; 路径不是有效路径,请使用适当的路径并检查

毕加索有回调,使用它们并检查。

Picasso.with(getActivity()).load(new File(path)).into(mApartmentImageView, new Callback() {
        @Override
        public void onSuccess() {

        }

        @Override
        public void onError() {
        }
    });

在此之前,传递正确的文件路径。尝试在浏览器中点击文件路径,如果路径正在提供图像,则将其用作加载方法

中的参数
Picasso picasso = new Picasso.Builder(getContext())
        .listener(new Picasso.Listener() {
            @Override
            public void onImageLoadFailed(Picasso picasso, Uri uri, Exception exception) {
                //Here your log
            }
        })
        .build(); picasso.load(new File(path)).into(mApartmentImageView);