Hallo zusammen,
Ich habe folgendes Problem:
Ich lade mir eine XML-Datei aus dem Internet, parse sie und speichere die Elemente in einer ArrayList. Anschließend lasse ich mir sie in einer ListView mit einem SimpleAdapter anzeigen:
ListAdapter adapter = new SimpleAdapter(ListViewActivity.this, projectItems,
R.layout.list_item_projects,
new String[]{KEY_JOBTITLE, KEY_JOBINFO,KEY_PROJECTIMAGE},
new int[]{R.id.jobtitle, R.id.jobinfo,R.id.projectImage});
Jetzt zu meiner Frage:
Kann ich den SimpleAdapter auch dazu verwenden mir ein Bild aus der XML-Datei zu laden?
Das obere Beispiel funktioniert leider nicht weil ich die Meldung:
05-05 11:01:32.554 23743-23743/de.kevox.kevox.app E/BitmapFactory﹕ Unable to decode stream: java.io.FileNotFoundException: /iVBORw0KGgoAAAANSUhEUgAAAP8AAAB/................
Ich muss dazu erwähnen, dass das Bild in der heruntergeladenen XML-Datei als Base64-String steckt.
Ich habe dazu im Internet auch folgende Methode gefunden ich weiß nur nicht ob ich die dafür verwenden kann.
public static Bitmap decodeBase64(String input) {
byte[] decodedByte = Base64.decode(input, Base64.DEFAULT);
return BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length);
}
Die Daten die in die ListView eingetragen werden bekomme ich hier:
for (int i = 0; i < nodeListProject.getLength(); i++) {
HashMap<String, String> map = new HashMap<>();
Element e = (Element) nodeListProject.item(i);
map.put(KEY_UUID, parser.getValue(e, KEY_UUID));
map.put(KEY_NAME, parser.getValue(e, KEY_NAME));
map.put(KEY_JOBTITLE, parser.getValue(e, KEY_JOBTITLE));
map.put(KEY_JOBINFO, parser.getValue(e, KEY_JOBINFO));
map.put(KEY_PROJECTIMAGE, parser.getValue(e,KEY_PROJECTIMAGE));
projectImageString = parser.getValue(e,KEY_PROJECTIMAGE);
Bitmap bm = decodeBase64(projectImageString);
projectItems.add(map);
}
Alles anzeigen
Ich hoffe meine Frage war verständlich.
Wenn nicht bitte nachhacken ich erkläre es gerne nochmal.
Vielen Dank!
lg
lainio