其更好地使用惰性加載
您可以使用thest1/LazyList
或高級圖像緩存Android的通用 - 圖片 - 裝載機 From here
Android的Universal- Image-Loader包含不同的例子來列出從URL到列表視圖的圖像。
編輯
你的主要Functiom後,您可以設置適配器
在你的代碼的設置和初始化內部列表視圖for循環這是錯誤的,你需要使用自定義適配器來使用延遲加載來列出圖像。下面的代碼是我編輯了它的一部分後的代碼。
// Getting JSON from URL
List<NameValuePair> params = new ArrayList<NameValuePair>();
// getting JSON string from URL
JSONObject json1 = jParser.makeHttpRequest(url_all_products,"GET",params);
Log.d("All Products: ", json1.toString());
try {
products = json1.getJSONArray(TAG_PRODUCTS);
// looping through All Products
for (int i = 0; i < products.length(); i++) {
JSONObject c = products.getJSONObject(i);
String name = c.getString(TAG_NAME);
String url = c.getString(TAG_URL);
HashMap<String, String> map = new HashMap<String, String>();
map.put(TAG_URL, url);
map.put(TAG_NAME, name);
productsList.add(map);
}
//DON'T SET ADAPTER IN A LOOP
MyListViewAdaptor adapter = new MyListViewAdaptor(
getActivity(), productsList,
);
ListView list = (ListView) getView().findViewById(R.id.list);
list.setAdapter(adapter);
} catch (JSONException e) {
e.printStackTrace();
}
寫適配器俗以顯示圖像進行比SimpleAdapter其他的列表視圖,並使用在adpator在惰性加載所用的功能和顯示image.Let請MyListViewAdaptor.The例子如下
給出一個適配器
MyListViewAdaptor.java
public class MyListViewAdaptor extends BaseAdapter {
// Declaring Variables
private Activity activity;
private ArrayList<HashMap<String, String>> myarray;
private static LayoutInflater inflater = null;
public ImageLoader imageLoader;
// PLAESE READ ImageLoader IS A CLASS FROM LIB thest1/LazyList LAZYLOADING
public MyListViewAdaptor(Activity a, ArrayList<HashMap<String, String>> myarray) {
activity = a;
this.myarray = myarray;
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
imageLoader = new ImageLoader(activity);
}
public int getCount() {
return myarray.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
if (convertView == null)
// Get the view from mainpage_row.xml
vi = inflater.inflate(R.layout.yourlistviewrowname, null);
ImageView userImage = (ImageView) vi
.findViewById(R.id.youtimageviewname);
TextView textName = (TextView) vi.findViewById(R.id.yourtextviewname);
HashMap<String, String> datamap = new HashMap<String, String>();
datamap = myarray.get(position);
textName.setText(datamap.get("yourTextKeyHere"));
imageLoader.DisplayImage(datamap.get("yourImageKeyHere"), userImage);
return vi;
}
}
不要忘記添加權限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
希望這將幫助你
使用Android-Universal-Image-Loader – sakir
我不知道如何,我需要例如e – user3730912