我试图将图像从url加载到我的android ImageView。但它没有为我的网址提供图片。但当我调用另一个样本网址时,它会在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);
}
}
}
答案 0 :(得分:5)
您图片的网址是localhost。 Localhost(127.0.0.1)指的是与请求发起相同的计算机。因此,您的手机会向自己发送请求。而是指定运行服务器的PC的IP地址。
PS:确保您的PC和手机都连接到同一网络。
答案 1 :(得分:2)
我认为您的问题出在您的网址中,用您的IP地址替换您的localhost,希望它能解决您的问题。
答案 2 :(得分:1)
只需使用图片加载和缓存库。例如Picasso
Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);
替代解决方案是Glide;它有类似的工作原理它有一个类似的工作原理:
Glide.with(this).load("http://goo.gl/gEgYUd").into(imageView);
答案 3 :(得分:1)
您是否有运行支持HTTPS的本地网络服务器?因为这是您尝试从中加载图像的位置。
此外,如果您在运行时,是否在浏览器中调用所需的网址时获得了图片?
答案 4 :(得分:0)
您是否尝试使用Picasso库非常简单有效:
转到app dir中的build.gradle并添加到依赖项:
compile 'com.squareup.picasso:picasso:2.5.2'
然后使用picasso lib:
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);