2013-04-29 64 views
0

我正試圖創建一個簡單的應用程序,從網站(如9gag)加載照片。我正在使用jSoup和asyncTask。問題是,當我運行的應用程序它只顯示圖像的url ..我可以做什麼,以便在listView中顯示圖像,而不是url。 XML Prob?說明: - !在這裏/顯示網址而不是圖片Android應用程序

[屏幕快照] https://www.dropbox.com/s/moybisjrbdgzjre/Screenshot_2013-04-29-20-09-13.png

是我LoadImages類:

public LoadImages(ArrayList list, ArrayAdapter adapter) 
{ 

    this.list = list; 
    this.adapter = adapter; 
} 

@Override 
protected Elements doInBackground(String... params) { 
    org.jsoup.nodes.Document doc = null; 
     try 
     { 
      doc =Jsoup.connect("http://mongol.co.il/").get(); 
      return doc.select("img"); 

     } 
     catch (IOException e1) 
     { 
      e1.printStackTrace(); 
     } 
    return null; 
} 

@Override 
protected void onPostExecute(Elements result) { 
    super.onPostExecute(result); 
    int flag=0; 
    //Bitmap bitmap = null; 
    for (org.jsoup.nodes.Element div : result) 
    { 
     String bla = div.absUrl("src"); 
     list.add(bla); 
     flag++; 
     if(flag==3) 
     break; 

    } 
    adapter.notifyDataSetChanged(); 

} 

這也是我.xml文件:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
<ListView 
    android:id="@+id/listview" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

</ListView> 

</LinearLayout> 

在此先感謝!

回答

0

您只是在此時提取網址。您需要獲取實際的位圖數據才能顯示圖像。有兩種方法可以做到這一點:

  1. 下載的所有圖像,然後顯示在列表之後一切都取
  2. 有圖片佔位符立即名單,因爲他們是 需要獲取相關的圖片

一般來說,通過顯示您所擁有的內容(選項#2)來快速回復是一種更好的體驗。 ListView對這個模型非常有幫助。在適配器的getView()方法中,您將顯示佔位符圖像,同時觸發AsyncTask以獲取位圖。您將在onPostExecute中設置圖像。不幸的是,View回收會讓事情變得混亂。這種基本的實現將導致在許多情況下顯示錯誤的圖像,並且如果用戶快速來回滾動,則會出現完全不響應的設備。

幸運的是,這些都是別人解決的問題。事實上,有一組優秀的tutorials along with sample code on Android Developer website

0

我做了這樣的事情:

我有一個DBIDimage URLimage URI

image URI是一樣的東西file:////mnt/sdcard/<your package>/images/image1.png

我有一個佔位符圖像的每一行,在我Arraylist我已將image URI放入Arraylist。然後在getView方法檢查URI file是否存在,如果不存在,則發送廣播以下載該圖像(帶ID)。在下載器中,我使用相應的URL獲取圖像。

如何檢查URI存在:創建一個文件對象與URI並調用isExists()

如何發送廣播:創建一個intentIDextras然後調用sendBroadcast(intent)

現在如何刷新列表後圖像已下載:發送另一個broadcastonPostExecute()刷新列表並捕獲broadcast在喲請撥打activity並致電list.notifyDatasetChanged()

0

您要添加字符串列表

String bla = div.absUrl("src"); 
list.add(bla); 

您需要創建custom adapter(爲ListView),其將採取String bla下載圖像。

試試這個tutorial

相關問題