URL图片不会设置为ImageView Android

时间:2015-11-03 13:25:14

标签: android imageview android-imageview

我试图将图像从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);

    }
}
}

5 个答案:

答案 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库非常简单有效:

  1. 转到app dir中的build.gradle并添加到依赖项:

    compile 'com.squareup.picasso:picasso:2.5.2'

  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);