Отображение нескольких изображений с использованием их URL для просмотра списка с помощью JSON - PullRequest
0 голосов
/ 08 марта 2012

Я пытался загрузить URL-адреса своих изображений в просмотр списка, который должен быть первым загружен, может кто-нибудь, пожалуйста, помогите мне.

HashMap<String, String> map = new HashMap<String, String>();
 map.put("id", String.valueOf(i));
 map.put("name", "House name:" + json_data.getString("name"));
map.put("address", "Adress: " + json_data.getString("address"));

URL newurl = new URL(json_data.getString("imageUrl"));
 itmap bitmap = BitmapFactory.decodeStream((InputStream) new URL(result).getContent());
 ImageView imagy = (ImageView)findViewById(R.id.image);
 imagy.setImageBitmap(bitmap); 
  map.put("img",bitmap);//error is here says convert bitmap to type string
  mylist.add(map);

Ответы [ 2 ]

1 голос
/ 08 марта 2012

Надеюсь, ваш настоящий HashMasp HashMap map = new HashMap ();

если это так, вы можете добавлять только строковые значения. попробуйте следующее,

class House {
    int id;
    String houseName;
    String houseAddress;
    Bitmap image;
}

List<House> houseList = new ArrayList<House> ();

House houseObj = new House();

houseObj.id = i;
houseObj.houseName = "House name:" + json_data.getString("name");
houseObj.address = "Adress: " + json_data.getString("address");

URL newurl = new URL(json_data.getString("imageUrl"));
Bitmap bitmap = BitmapFactory.decodeStream((InputStream) new URL(result).getContent());
ImageView imagy = (ImageView)findViewById(R.id.image);
imagy.setImageBitmap(bitmap); 

houseObj.image = bitmap;

houseList.add(houseObj);

используйте этот список в вашем адаптере списка просмотра.

1 голос
/ 08 марта 2012

Что вы делаете именно с этим кодом?

 URL newurl = new URL(json_data.getString("imageUrl"));
            Bitmap bitmap = BitmapFactory.decodeStream((InputStream) new URL(result).getContent());
            ImageView imagy = (ImageView)findViewById(R.id.image);
              imagy.setImageBitmap(bitmap); 
             map.put("img",bitmap);//error is here says convert bitmap to type string

            mylist.add(map);

Потому что вы делаете findViewById () и каждый раз устанавливаете растровое изображение.И затем вы добавляете в мой список.

Предложение: Вместо этого я бы предложил вам добавить только строку URL в HashMap:

String strImageURL = json_data.getString("imageUrl");
map.put("img",strImageURL );/

И при определении пользовательского адаптера дляваш ListView, просто сделайте, как вы делаете выше, в методе getView () вашего пользовательского адаптера (который можно определить, расширяя BaseAdapter ).

Предложение 2: Если вы хотите реализовать отложенную загрузку изображений внутри ListView, проверьте ответ Федора, приведенный здесь: Android - Как выполнить отложенную загрузку изображений в ListView

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...