2013-03-14 1 views
0

Я пытаюсь добавить загруженные изображения в ListView. Я начинаю получать имена файлов изображений с моего сервера, а затем создаю AsyncTask для построения растровых изображений и хранения их в массиве Bitmap[]. Затем я использую HashMap, чтобы добавить данные, используя SimpleAdapter, показанный ниже. Я хочу знать, как добавить растровые изображения в список.Как добавить загруженное изображение в ListView?

Сейчас я получаю сообщение об ошибке, когда я пытаюсь поместить фотографию элемента в хэш-карту. Как мне это решить? Нужно ли переместить их в каталог ресурсов drawable? Я совершенно новичок в этом и буду признателен за любую помощь в получении загруженных изображений в виде списка. Вот как я готовлю данные. Все это происходит в методе onPostExecute() моей задачи async, в котором OI выполняет другую задачу async для получения файлов изображений.

new AccessImages().execute("http://10.0.2.2:8000/herbivorenew/" + viewdata[2]); 

List<HashMap<String,String>> aList = new ArrayList<HashMap<String,String>>(); 

for (int i=0;i< count; i++) { 
    HashMap<String, String> hm = new HashMap<String,String>(); 
    hm.put("item_header", viewtext[i]); 
    // built from an asynctask from the server 
    hm.put("item_photo", (Bitmap)(itemphoto[i])); 
    hm.put("carrots", Integer.toString(carrotimage[i])); 

    aList.add(hm); 
} 

// Keys used in Hashmap 
String[] from = {"item_header", "item_photo", "carrots"}; 

// Ids of views in listview_layout 
int[] to = {R.id.item_header, R.id.item_photo, R.id.item_carrot}; 

// Instantiating an adapter to store each items 
// R.layout.listview_layout defines the layout of each item 
SimpleAdapter adapter = new SimpleAdapter(getBaseContext(), 
aList, R.layout.itemlist, from, to); 

// Getting a reference to listview of main.xml layout file 
ListView item_list = (ListView) findViewById(R.id.listitems); 
item_list.setAdapter(adapter); 

Вот где я получаю загруженные изображения:

private class AccessImages extends AsyncTask<String, Void, Bitmap> { 

    protected Bitmap doInBackground(String... urladds){ 
     return downloadImage(urladds[0]); 
    } 

    protected void onPostExecute(Bitmap bmp) { 
     itemphoto[itemcount] = bmp; 
     itemcount++; 
    } 
} 
+0

Надежда это поможет: http://stackoverflow.com/questions/541966/how-do-i-do-a-lazy-load-of-images-in-listview – gZerone

ответ