使用Picasso android在ImageView中无法通过URL加载图像

问题描述 投票:-1回答:2

我正在使用Picasso库从URL设置图像。此URL使用其他编程语言,但不适用于Android。

Picasso.with(context).load(product_modal.getImage()).placeholder(R.drawable.ic_no_image).into(holder.iv_thumbnail_filled);
android picasso
2个回答
0
投票

根据Picasso图书馆,他们改变了加载图像的方式

请使用以下内容加载图片

Picasso.get().load(product_modal.getImage()).placeholder(R.drawable.ic_no_image).into(holder.iv_thumbnail_filled);

你可以查看这个question了解更多信息。


0
投票

最后,我发现了你遇到的实际问题。将https替换为您网址中的http。因为您的网站没有SSL。

刚刚创建了一个加载图像的方法

    private void loadImage(final ImageView imageView, final String imageUrl){
    Picasso.get()
            .load(imageUrl)
            .placeholder(R.drawable.image_white)
            .into(imageView , new Callback() {
                @Override
                public void onSuccess() { 
                }

                @Override
                public void onError(Exception e) {
                     String updatedImageUrl;
                    if (imageUrl.contains("https")){
                         updatedImageUrl = imageUrl.replace("https", "http");
                    }else{
                         updatedImageUrl = imageUrl.replace("http", "https");
                    }
                    loadImage(imageView, updatedImageUrl);
                }
            });
}

您只需要提供imageView和图像URL。如果图像没有加载,那么它第一次尝试将https替换为http,然后尝试加载图像。

使用此方法:

loadImage(holder.iv_thumbnail_filled, product_modal.getImage());

并确保您在AndroidManifest.xml中具有Internet访问权限

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

希望这能解决你的问题。

© www.soinside.com 2019 - 2024. All rights reserved.