我一直在訪問堆棧溢出多年,這是我第一次,我找不到任何帖子,可以解決我的問題(至少我沒有看到任何) 。懶惰加載GridView與從互聯網下載圖像
我有一個GridView
與自定義適配器,我已覆蓋返回由ImageView
和TextView
作出的自定義視圖。
我從JSON解析的網址與他們的AsyncTask
,存儲所有信息到ArrayList
在doInBackground()
方法,並在onPostExecute()
方法調用notifyDataSetChanged()
後,裝載圖像。一切安好。
現在我的問題是,當我啓動活動時,需要5-10秒的時間才能創建網格視圖並將其自身呈現給實體中的用戶。我想知道是否有方法顯示網格視圖與文字信息,然後每個圖像將加載。這是否可能,因爲它們都是用相同的方法創建的?
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
View v = null;
if (arg1 == null) {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.custom_product_view, null);
} else {
v = arg1;
}
iv = (ImageView) v.findViewById(R.id.product_image);
imageLoader.DisplayImage(products.get(arg0).getImage(), iv);
TextView tv = (TextView) v.findViewById(R.id.product_price);
tv.setText(products.get(arg0).getPrice());
return v;
}
我還必須告訴你,你可以從DisplayImage()
的方法,我已經實現了這個懶加載看到:Lazy load of images in ListView。它工作正常,但事情是它再次加載整個視圖。我想要做的是啓動活動,首先加載標題,然後在完成下載時加載圖像。在這裏使用這段代碼,它只是懶加載整個視圖,包含網格視圖的每個單元格。我賺了幾秒鐘,因爲我不像以前一樣下載所有的圖像,但仍然不是我正在尋找的。
非常感謝。
是的,但又如何解釋如何加載文本? – AbuJaFaR 2013-03-25 13:48:47
我的理解是,你正在調用一些REST API,然後解析JSON響應以獲取圖像URL及其標題。所以標題和圖像都會有滯後。我提到的方法是有一個佔位符文本以及圖像,以便GridView得到渲染。然後像我的例子中那樣異步更新標題和圖像,或者您爲圖像完成的方式。 – appsroxcom 2013-03-25 15:20:03
我明白了。好的,謝謝,我會試一試! – AbuJaFaR 2013-03-25 15:29:06