当我尝试在本地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。它可能对你有用。
我已经为此苦苦挣扎了一个多小时了。
我做了以下工作:
- 使用
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它就像一个魅力。
希望这有帮助。