Android – Bilder verwenden

Nachdem ich an sich schon den Code hatte, um Bilder via http einzubinden, also eine Bitmap zu erzeugen, ging es nun darum Bilder aus dem Ordner drawable in der Listenansicht anzuzeigen.

Dies bedeutet einen SimpleAdapter mit Bezug auf eine Liste zu verwenden, in der die Listenelemente enthalten sind. Mit R.id.thumb wird quasi auf den Platzhalter für das Bild in der XML-Datei für das Layout verwiesen (1).

Die Liste ist aus folgenden Elementen aufgebaut:

liste = new ArrayList"kleiner"HashMap"kleiner"String,Object"größer""größer">();

Ein Element kann der Liste so hinzugefügt werden (2):
temp.put("image",myImage);
liste.add(temp);

Das ist auch kein Problem. Doch was schreibt man nur für myImage? Der Name des Bildes aus dem drawable-Ordner reicht nicht. Da gibt es dann eine Fehlermeldung, so etwas wie „resolveUri failed on bad bitmap uri“.

myImage braucht eine Referenz, die erst ausgelesen werden muss (3):

final Context mContext = getApplicationContext();
Resources res = mContext.getResources();
Drawable myImage = res.getDrawable(R.drawable.myimage);

So habe ich eine Variable der Art Drawable, die ich wiederum im ViewBinder verwenden kann. Dieser ist notwendig, da der SimpleAdapter aus sich heraus keine Bilder verarbeitet.

Nach der Erzeugung des Adapters braucht man noch (4):

adapter.setViewBinder(new MyViewBinder());

MyViewBinder ist wiederum eine Klasse, in der in der Methode setViewValue folgendes steht:

if (view instanceof ImageView) {
((ImageView) view).setImageDrawable((Drawable) data);
return true;
}

Hier wird also nach Bilddaten im Drawable-Format verlangt.

Insgesamt sind also nach meiner Rechnung vier Teilschritte notwendig, um ein Bild hier zur Anzeige zu bringen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

* Die DSGVO-Checkbox ist ein Pflichtfeld

*

Ich stimme zu.