Я прочитал Универсальный загрузчик изображений, и я делаю приложение, которое имеет вид сетки, и этот вид сетки получает изображение из json. но мое приложение загружается так медленно, поэтому я хочу использовать универсальный загрузчик изображений, но функция getView
в универсальном загрузчике изображений в классе ImageAdapeter используется так
imageLoader.displayImage(imageUrls[position], imageView, options);
или для формулы imageLoader.displayImage(String, imageView, options);
Поэтому у меня нет строки для завершения этой формулы. Я просто могу создать Object arr
для хранения Arraylist.
Как я могу преобразовать ArrayList<HashMap<String, Object>>
в строку или каким-либо образом изменить свой код?
Пожалуйста, подтвердите или посоветуйте или порекомендуйте меня, как вы можете. легко читаемый мой код
Ниже мой ImageAdapter. он работает нормально, но так медленно.
public class ImageAdapter extends BaseAdapter {
private Context context;
private ArrayList<HashMap<String, Object>> MyArr = new ArrayList<HashMap<String, Object>>();
public ImageAdapter(Context c, ArrayList<HashMap<String, Object>> myArrList) {
context = c;
MyArr = myArrList;
}
public int getCount() {
return MyArr.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
viewHolder = new ViewHolder();
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = inflater.inflate(R.layout.grid_item, null);
}
viewHolder.categoryCard = (ImageView) convertView.findViewById(R.id.category_card);
//==================== change area
Object arr = new ArrayList<HashMap<String, Object>>(); // make objec arr to store arraylist
arr = MyArr.get(position).get("categoryid");
if (arr.equals("1")) {
viewHolder.categoryCard.setImageResource(R.drawable.card_eat);
viewHolder.imageView = (ImageView) convertView.findViewById(R.id.imageView1);
} else {
viewHolder.categoryCard.setImageResource(R.drawable.card_etc);
viewHolder.imageView = (ImageView) convertView.findViewById(R.id.imageView1);
}
// =============================
try {
viewHolder.imageView.setImageBitmap((Bitmap) MyArr.get(position).get("ImageThumBitmap"));
} catch (Exception e) {
viewHolder.imageView.setImageResource(android.R.drawable.ic_menu_report_image);
}
return convertView;
}
}
// Download JSON in Background
public class DownloadJSONFileAsync extends AsyncTask<String, Void, Void> {
String token = getIntent().getExtras().getString("token1");
protected void onPreExecute() {
super.onPreExecute();
showDialog(DIALOG_DOWNLOAD_JSON_PROGRESS);
}
@Override
protected Void doInBackground(String... params) {
String url = "http://xxx.xxx.xxx/card/all/20/0/?token="+token;
JSONArray data = null;
try {
JSONObject jsonObject = new JSONObject(getJSONUrl(url));
MyArrList = new ArrayList<HashMap<String, Object>>();
HashMap<String, Object> map;
data = jsonObject.getJSONArray("data");
for (int i = 0; i < data.length(); i++) {
JSONObject c = data.getJSONObject(i);
map = new HashMap<String, Object>();
// Thumbnail Get ImageBitmap To Object
map.put("cardimage", (String) c.getString("cardimage"));
map.put("ImageThumBitmap",(Bitmap) loadBitmap(c.getString("cardimage")));
map.put("categoryid", (String) c.getString("categoryid"));
MyArrList.add(map);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
protected void onPostExecute(Void unused) {
ShowAllContent(); // When Finish Show Content
dismissDialog(DIALOG_DOWNLOAD_JSON_PROGRESS);
removeDialog(DIALOG_DOWNLOAD_JSON_PROGRESS);
}
}
Это ImageAdapter, полученный из Универсальный загрузчик изображений
public class ImageAdapter extends BaseAdapter {
@Override
public int getCount() {
return imageUrls.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ImageView imageView;
if (convertView == null) {
imageView = (ImageView) getLayoutInflater().inflate(R.layout.item_grid_image, parent, false);
} else {
imageView = (ImageView) convertView;
}
// I want to do like this
imageLoader.displayImage(imageUrls[position], imageView, options);
return imageView;
}
}
ArrayList<HashMap<String, Object>>
, верно? 2) Содержит ли каждый HashMap URL-адрес изображения? - person Paresh Mayani   schedule 04.01.2013MyArr.get(position).get("categoryid")
- person kongkea   schedule 04.01.2013