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



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

我在本地 Web 服务器上的图像路径:

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()作品

将 URI 与方案 "http://192.168.1.4/public/channels/7BYtHhP5LP8.png" 一起使用。此外,只需在浏览器中键入 URI(从手机(即可检查图像是否可见。

您还需要更改网络策略:

.networkPolicy(NetworkPolicy.OFFLINE)

因为离线意味着(文档(

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

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。它可能对你有用。

我已经为此苦苦挣扎了一个多小时了。

我做了以下工作:

  1. 使用ifconfig | grep 192检索本地 IP (mac(。 并从 inet 获取值。

它仍然不起作用,因为我缺少权限

<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它就像一个魅力。

希望这有帮助。

最新更新