代码之家  ›  专栏  ›  技术社区  ›  zundi

无法在Android上使用毕加索下载图像

  •  0
  • zundi  · 技术社区  · 6 年前

    我想用毕加索下载下面的图片 https://s3-media4.fl.yelpcdn.com/bphoto/94E7Ti0RTDbA6mGotZw5DA/o.jpg

    我可以在浏览器中看到它。但是,当我尝试使用毕加索下载它时,我会得到一个错误(OnerRor()方法中的一个断点被击中)。

    这是我的代码摘录:

    final RequestCreator rc = with(context).load(fullImagePath);
    
    if (fit != null && fit) {
        rc.fit();
    }
    
    // If no callback listener exists, create one.
    if (callbackListener == null) {
        callbackListener = new Callback() {
    
            @Override
            public void onSuccess() {
                L.p("onSuccess retrieving " + fullImagePath);
            }
    
            @Override
            public void onError() {
                // Something went wrong
                L.p("Error retrieving " + fullImagePath);
            }
    
        };
    }
    
    rc.into(fImageView, callbackListener);
    

    我发现这个: https://github.com/square/picasso/issues/500 但是它有点过时了,OkhttpClient类不再具有setProtocols()方法。

    谢谢!

    2 回复  |  直到 6 年前
        1
  •  0
  •   SaltySea    6 年前

    将该链接插入为“http”而不是“https”即可。

        2
  •  0
  •   oiyio    6 年前

    下面的代码适用于HTTP和HTTPS链接。

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        imageView = (ImageView) findViewById(R.id.imageView);
    
        String https = "https://s3-media4.fl.yelpcdn.com/bphoto/94E7Ti0RTDbA6mGotZw5DA/o.jpg";
        String http = "http://www.sunseed.org.uk/projectpack/files/2014/05/Library_1400_800-1200x686.jpg";
        Picasso.with(this)
                .load(https)
                .placeholder(R.drawable.me)
                .into(imageView);
    }
    

    还要确保在清单文件中写入以下权限:

    <uses-permission android:name="android.permission.INTERNET" />
    

    同时在build.gradle文件中写入以下内容

    implementation 'com.squareup.picasso:picasso:2.5.2'