URL 图像不会设置为 ImageView Android
Posted
技术标签:
【中文标题】URL 图像不会设置为 ImageView Android【英文标题】:URL image will not set to ImageView Android 【发布时间】:2016-02-03 16:12:38 【问题描述】:我正在尝试将图像从 url 加载到我的 android ImageView。但它没有为我的网址提供任何图像。但是当我调用另一个示例 url 时,它会在 ImageView 上加载
我的网址为空
https://192.168.100.15/HeyVoteWeb/Home/GetImage/d9cbd32c-47fc-4644-ab97-1f525c96e9ed/100000102
此示例网址适合我
https://upload.wikimedia.org/wikipedia/commons/4/47/PNG_transparency_demonstration_1.png
这是我正在处理的代码
public class GetImage extends Activity
ImageView postpic1;
Bitmap b;
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.all_posts);
postpic1 = (ImageView) findViewById(R.id.postpic1);
information info = new information();
info.execute("");
public class information extends AsyncTask<String, String, String>
@Override
protected String doInBackground(String... arg0)
try
URL url = new URL("https://localhost/HeyVoteWeb/Home/GetImage/d9cbd32c-47fc-4644-ab97-1f525c96e9ed/100000102");
InputStream is = new BufferedInputStream(url.openStream());
b = BitmapFactory.decodeStream(is);
catch(Exception e)
return null;
@Override
protected void onPostExecute(String result)
postpic1.setImageBitmap(b);
【问题讨论】:
【参考方案1】:图片的 URL 是 localhost。 localhost(127.0.0.1) 指的是与请求来源相同的机器。因此,您的手机会向自己发送请求。而是指定运行服务器的电脑的 IP 地址。
PS:确保你的电脑和手机连接到同一个网络。
【讨论】:
@Naz141:你的服务器上设置 SSL 了吗? 当我在网络浏览器中运行这个 url 时,会弹出一个窗口来从 url 下载图像。它不会在浏览器中显示图像 @Naz141: ***.com/questions/4221874/… 进一步了解如何设置它。相反,您可以尝试使用普通的 http 吗? @Naz141:你能在安卓浏览器上看到图片吗?如果不是,请检查您的手机和服务器是否在同一网络上。 是的,我可以在我的手机中看到,并且在浏览器中运行时图像会自动下载【参考方案2】:我认为您的问题出在您的 URL 中,请将您的 localhost 替换为您的 IP 地址,希望它能解决您的问题。
【讨论】:
【参考方案3】:只需使用图像加载和缓存库。比如Picasso
Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);
替代解决方案是Glide;它有一个相似的工作原理它有一个相似的工作原理:
Glide.with(this).load("http://goo.gl/gEgYUd").into(imageView);
【讨论】:
【参考方案4】:您有运行支持 HTTPS 的本地网络服务器吗?因为那是您尝试从中加载图像的位置。
另外,如果你正在运行,当你在浏览器中调用你想要的 URL 时,你会得到图像吗?
【讨论】:
这是网址https://192.168.100.15/HeyVoteWeb/Home/GetImage/d9cbd32c-47fc-4644-ab97-1f525c96e9ed/100000102
是的,我看到了。那是对本地 HTTPS 网络服务器的调用,所以你有一个在运行吗?如果没有,则此 URL 将永远不会为您提供图像。这会调用您正在运行它的计算机/设备,而不是互联网上的随机图像(仅用于说明)。
我无法调用此 URL,因为我的计算机上没有正在运行的网络服务器,其目录路径例如C:\xampp\htdocs\HeyVoteWeb\Home\GetImage\d9cbd32c-47fc-4644-ab97-1f525c96e9ed\100000102 ---- 你从哪里得到这个链接?【参考方案5】:
您是否尝试过使用Picasso 库非常简单有效:
在 app 目录中找到 build.gradle 并添加到依赖项:
compile 'com.squareup.picasso:picasso:2.5.2'
然后使用毕加索库:
String url = "https://localhost/HeyVoteWeb/Home/GetImage/d9cbd32c-47fc-4644-ab97-1f525c96e9ed/100000102";
Picasso.with(context) //The context of your activity
.load(url)
.into(postpic1);
【讨论】:
当我输入下面的 url 时,它不会加载 imageview 是空的。但它适用于所有其他图片网址https://192.168.100.15/HeyVoteWeb/Home/GetImage/d9cbd32c-47fc-4644-ab97-1f525c96e9ed/100000102
我的图片网址在我的浏览器中工作。当我在浏览器中运行 url 时,图像会自动下载
@Naz141,那么这就是您应该直接使用指向 img 的链接而不是下载 img 的链接的问题,它们是具有 2 个不同功能的 2 个不同链接以上是关于URL 图像不会设置为 ImageView Android的主要内容,如果未能解决你的问题,请参考以下文章