2013-10-11 68 views
2

我有排球和ListView的問題。也許我不明白凌空應該如何工作......你瞧,這是從我的活動代碼:排球加載相同的縮略圖

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    mRequestQueue = Volley.newRequestQueue(this); 
    imageLoader = new ImageLoader(mRequestQueue, new BitmapLruCache()); 

    items = createItemList(); 

    expListView = (ListView) findViewById(R.id.listView); 
    ListAdapter listAdapter = new ListAdapter(); 
    expListView.setAdapter(listAdapter); 
} 

我設置Volley.newRequestQueue(this)ImageLoaderBitmapLruCachethe same here)。

當我ListAdapter我重寫getView()

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     if (convertView == null) 
      convertView = infalInflater.inflate(R.layout.menu_item, null); 
     final ImageView ivCover = (ImageView) convertView.findViewById(R.id.icCoverThumb); 
     imageLoader.get(items.get(position).url, ImageLoader.getImageListener(ivCover, R.drawable.ic_launcher, R.drawable.ic_launcher)); 
     return convertView; 
    } 

這裏我使用imageLoader.get(items.get(position).url, ImageLoader.getImageListener(ivCover, R.drawable.ic_launcher, R.drawable.ic_launcher));(是的痛處嗎?)。

大拇指已加載,但不便去錯了:當應用程序啓動第一次,在列表視圖中的第一項有重複ICO與來自其他行的一個圖標 - http://prntscr.com/1wmrck

謝謝!

回答

2

難再現沒有更多的信息,但我會建議使用NetworkImageView從網絡加載縮略圖,順便說一句,我會用一個「ViewHolder」改善你的ListView

性能這是一個示例ArrayAdapter在ListView上顯示推文

... 
public View getView(int position, View convertView, ViewGroup parent) { 
    ViewHolder holder; 
    if (convertView == null) { 
     convertView = LayoutInflater.from(getContext()).inflate(R.layout.tweet_list_item, null); 
     holder = new ViewHolder(); 
     holder.imageView = (NetworkImageView) convertView.findViewById(R.id.twitterUserImage); 
     //set more views (username, text, date ...) 

     convertView.setTag(holder); 
    } else { 
     holder = (ViewHolder) convertView.getTag(); 
    } 

    //get the current element from the data array 
    Tweet currentTweet = getItem(position); 

    //set data into the views 
    holder.imageView.setImageUrl(currentTweet.getUser().getProfileImageUrl(), VolleyManager.getImageLoader()); 
    //... 


    return convertView; 
} 

private static class ViewHolder { 
    private NetworkImageView imageView; 
    //other views... 
} 
+0

我會檢查。如果這將是stil需要,我會添加更多的信息。謝謝! – validcat

+0

關於視圖模式我知道,是啊 – validcat

+0

耶!非常感謝,它的作品!我已經將ImageView切換到NetworkImageView,並按照您的描述設置圖像d holder.imageView.setImageUrl(URL,VolleyManager.getImageLoader()); – validcat