2015-11-03 83 views
0

我試圖從url加載圖像到我的android ImageView。但它沒有給我的網址形象。但是當我打電話另一個樣本網址加載在ImageView的URL圖像將不會設置爲ImageView Android

我的URL這給空

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

只需使用圖像加載和緩存庫。例如Picasso

Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView); 

替代解決方案是Glide;它有一個類似的工作principleIt也有類似的工作原理是:

Glide.with(this).load("http://goo.gl/gEgYUd").into(imageView); 
1

你有一個本地網絡服務器運行支持HTTPS?因爲那是你試圖從中加載圖像的地方。

另外,如果你已經運行,當你在你的瀏覽器中調用你想要的URL時,你會得到圖像嗎?

+0

這是URL '的https:// 192.168.100.15/HeyVoteWeb /主頁/的getImage/d9cbd32c-47fc-4644-ab97-1f525c96e9ed/100000102' – Naz141

+0

是的,我看到了。這是對本地HTTPS網絡服務器的調用,那麼你有一個運行?如果沒有,這個URL永遠不會給你一張圖片。這將調用您正在運行此操作的計算機/設備,而不是**網絡上的隨機圖像(僅供說明)。 – LilaQ

+0

yes在您的瀏覽器中運行該網址 – Naz141

5

圖片的URL是localhost。本地主機(127.0.0.1)是指與請求源相同的機器。所以,你的手機向自己發送請求。而是指定服務器正在運行的個人電腦的IP地址。

PS:確保您的PC和手機都連接到同一網絡。

+0

@ Naz141:如果這個答案有幫助,你能否標記爲已接受? – Srinivas

+0

我正在使用IP,您可以在我編輯的問題中看到 – Naz141

+0

@ Naz141:您是否在服務器上設置了SSL? – Srinivas

2

我認爲你的問題是在你的URL中,用你的IP地址替換你的本地主機,希望它能解決你的問題。

0

您是否嘗試過使用Picasso庫非常簡單而有效:

  1. 轉到您的應用程序目錄內的build.gradle並添加到依賴性:

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

  2. 然後用畢加索的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);

+0

當我把我的下面的url它不加載imageview是空的。但對於所有其他圖像的URL工作 '的https:// 192.168.100.15/HeyVoteWeb /主頁/的getImage/d9cbd32c-47fc-4644-ab97-1f525c96e9ed/100000102' – Naz141

+0

我的圖片URL我的工作我的瀏覽器。當我在瀏覽器中運行網址 – Naz141

+0

@ Naz141時,圖像會自動下載,那麼這就是你應該直接使用鏈接到img的問題,而不是鏈接下載img,它們是2種不同的鏈接,帶有2種不同的功能 – commonSenseCode

相關問題