毕加索可以从我的本地主机加载图像

时间:2017-07-02 18:53:03

标签: android picasso

当我尝试在我的本地网络服务器上打开图像时,可以显示没有任何问题,而不是我试图在Android应用程序上加载Picasso,我设置了互联网权限和应用程序可以从网络获取数据

我在本地网络服务器上的图片路径:

localhost/public/channels/7BYtHhP5LP8.png

和我的网络IP地址:

192.168.1.4

这是我加载图片的代码:

Picasso.with(context)
        .load("192.168.1.4/public/channels/7BYtHhP5LP8.png")
        .networkPolicy(NetworkPolicy.OFFLINE)
        .into(holder.imageAvatar, new Callback() {
            @Override
            public void onSuccess() {
                holder.loading_avatar_image.setVisibility(View.GONE);
                holder.imageAvatar.setVisibility(View.VISIBLE);
            }
            @Override
            public void onError() {
                Picasso.with(context)
                        .load("192.168.1.4/public/channels/7BYtHhP5LP8.png")
                        .placeholder(R.drawable.cafe_alachiq_place_holder_logo)
                        .error(R.drawable.cafe_alachiq_logo)
                        .into(holder.imageAvatar, new Callback() {
                            @Override
                            public void onSuccess() {
                                holder.loading_avatar_image.setVisibility(View.GONE);
                                holder.imageAvatar.setVisibility(View.VISIBLE);
                            }
                            @Override
                            public void onError() {
                                holder.loading_avatar_image.setVisibility(View.GONE);
                                holder.imageAvatar.setVisibility(View.VISIBLE);
                                holder.imageAvatar.setImageDrawable(context.getResources().getDrawable(R.drawable.cafe_alachiq_logo));
                            }
                        });
            }
        });

在这个毕加索植入最新public void onError()为我工作

3 个答案:

答案 0 :(得分:0)

使用带有方案“http://192.168.1.4/public/channels/7BYtHhP5LP8.png”的URI。还可以通过在浏览器中输入URI(来自手机)来检查图像是否可见。

您还需要更改网络政策:

.networkPolicy(NetworkPolicy.OFFLINE)

因为OFFLINE表示(documentation

  

OFFLINE   仅通过磁盘缓存强制请求,跳过网络。

答案 1 :(得分:0)

我现在已经挣扎了一个多小时了。

我做了以下事情:

  1. 使用ifconfig | grep 192检索本地IP(mac)。并从inet获得了价值。
  2. 仍然没有用,因为我失去了权限

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

    在我的AndroidManifest.xml中添加了它,它就像一个魅力。

    希望这有帮助。

答案 2 :(得分:0)

    Picasso.with(context)
            .load("
http://10.0.3.2/public/channels/7BYtHhP5LP8.png")
            .networkPolicy(NetworkPolicy.OFFLINE)
            .into(holder.imageAvatar, new Callback() {
                @Override
                public void onSuccess() {
                    holder.loading_avatar_image.setVisibility(View.GONE);
                    holder.imageAvatar.setVisibility(View.VISIBLE);
                }
                @Override
                public void onError() {
                    Picasso.with(context)
                            .load("192.168.1.4/public/channels/7BYtHhP5LP8.png")
                            .placeholder(R.drawable.cafe_alachiq_place_holder_logo)
                            .error(R.drawable.cafe_alachiq_logo)
                            .into(holder.imageAvatar, new Callback() {
                                @Override
                                public void onSuccess() {
                                    holder.loading_avatar_image.setVisibility(View.GONE);
                                    holder.imageAvatar.setVisibility(View.VISIBLE);
                                }
                                @Override
                                public void onError() {
                                    holder.loading_avatar_image.setVisibility(View.GONE);
                                    holder.imageAvatar.setVisibility(View.VISIBLE);
                                    holder.imageAvatar.setImageDrawable(context.getResources().getDrawable(R.drawable.cafe_alachiq_logo));
                                }
                            });
                }
            });

尝试使用此IP。它可能适合你。