5 Stimmen

Problem beim Erstellen eines Drawable aus einem SQLite-Blob

Ich speichere Bilddateien als Blob in einer SQLite-Datenbank. Ich habe eine ähnliche Anwendung auf einer anderen Plattform, die das Gleiche mit denselben Bilddateien macht. Die Datenbanken auf beiden Plattformen melden für dieselben Bilder genau dieselbe Größe. Ich denke also, kann aber nicht garantieren, dass die Bilddaten intakt in die Datenbank gelangen.

Aber wenn ich versuche, ein Drawable zu erstellen, gibt die Konsole aus: "DEBUG/skia(267): --- decoder->decode returned false".

Die Schritte sind:

  1. Lesen Sie den Blob in ein Byte-Array.

    byte[] b = new byte[imageDataCursor.getInt(0)];

    b = imageDataCursor.getBlob(1);

  2. Erstellen Sie einen InputStream aus dem Byte-Array.

    ByteArrayInputStream is = new ByteArrayInputStream(b);

  3. Erstellen Sie ein Drawable aus dem InputStream. (dadurch wird die obige "Decoder"-Meldung erzeugt)

    Drawable drw = Drawable.createFromStream(is, "articleImage");

  4. Setzen Sie das ImageView.image auf das Drawable.

    imgView.setImageDrawable(drw);

Bis jetzt keine Freude. Irgendwelche Vorschläge?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X