2013-01-03 48 views
1

我目前在Android上工作,並且我創建了listview,它從URL加載圖像。我已經通過下面的代碼圖像不是從列表視圖上的URL加載

InputStream is = (InputStream) new URL("http://ka.35pk.com/uploadfiles/gamepic/090830121252.jpg").getContent(); 

Drawable d = Drawable.createFromStream(is, "pic name"); 
imageview.setImageDrawable(d); 

listview圖像不加載,直到我有一次向下滾動listview實現這一點。但它可以正確加載listview的隱形部分。也就是說,如果我在列表視圖方法中有100個圖像,一次只有10幅圖像在屏幕上可見,這10幅圖像不會在乞討時加載,當我向下滾動時,另外10個不可見圖像現在進入可見部分,並且這些圖像現在已成功加載,再次向上滾動時,現在這些卸載的圖像現在也加載了,這意味着它在屏幕上可見時不會加載。對不起,我的英文。希望,我已經詳細解釋過了。如何從URL中加載所有listview圖像,而無需向下滾動/向上滾動。請幫助我。謝謝。

+0

你必須刷新列表View.Follow鏈接下面 http://stackoverflow.com/questions/2250770/how-to-refresh-android-listview – Warewolf

+1

@赫拉克勒斯你的方法不適合我。 – praba

+0

@praba使用延遲加載由Dhaval的答案給出或遵循此鏈接http://negativeprobability.blogspot.in/2011/08/lazy-loading-of-images-in-listview.html – Warewolf

回答

2

檢查這個答案是幫助你:

1:https://stackoverflow.com/a/3068012/1168654

2:https://stackoverflow.com/a/8562313/1168654

如果你的應用程序有許多圖像&也有記憶問題,那麼你有以處理你的方式。 像使用LAZEY加載的listview中的下載圖像。和其他圖像使用像鏈接2.

另一種方式爲您滾動的問題檢查你的getView()代碼中添加適配器象下面這樣:

public class ListViewAdapter extends BaseAdapter { 

     private LayoutInflater mInflater; 

     public ListViewAdapter(Context con) { 
      // TODO Auto-generated constructor stub 
      mInflater = LayoutInflater.from(con); 
     } 

     public int getCount() { 
      // TODO Auto-generated method stub 
      return SoapParser.title_date.size(); 
     } 

     public Object getItem(int position) { 
      // TODO Auto-generated method stub 
      // return product_id1.size(); 
      return position; 
     } 

     public long getItemId(int position) { 
      // TODO Auto-generated method stub 
      // return product_id1.get(position).hashCode(); 
      return position; 
     } 

     public View getView(final int position, View convertView, 
       ViewGroup parent) { 
      // TODO Auto-generated method stub 
      final ListContent holder; 
      View v = convertView; 
      if (v == null) { 
       v = mInflater.inflate(R.layout.row_tb, null); 
       holder = new ListContent(); 

       holder.date = (TextView) v.findViewById(R.id.textView1); 
       holder.actual = (TextView) v.findViewById(R.id.textView2); 
       holder.targate = (TextView) v.findViewById(R.id.textView3); 

       v.setTag(holder); 
      } else { 

       holder = (ListContent) v.getTag(); 
      } 



      holder.date.setId(position); 
      holder.actual.setId(position); 
      holder.targate.setId(position); 

      holder.date.setText(" " + SoapParser.title_date.get(position)); 
      holder.actual.setText(" " + SoapParser.title_actual.get(position)); 
      holder.targate 
        .setText(" " + SoapParser.title_targate.get(position)); 

      return v; 
     } 
    } 

,如果你是使用佈局任何其他視圖然後使它android:focusable='false'

+0

我想與第二鏈接。我會盡快更新。謝謝您的回答。 –

+1

我通過使用UniversalImageLoader.jar完成了這項工作,但我仍然不知道,這個問題的原因是什麼。以前我用過「InputStream is =(InputStream)new URL(strPhotoUrl).getContent();」從URL加載圖片,但現在我改變了,工作正常。謝謝。 –