Ich habe es geschafft, Bilder in einem benutzerdefinierten drawListRow zu erhalten:Blackberry: Bilder von benutzerdefinierten verschwinden drawListRow
public void drawListRow(ListField listField, Graphics graphics, int index, int y, int width) {
graphics.drawBitmap(0, (index) * listField.getRowHeight(), firstrowPostion, rowHeight, thing.image, 0, 0);
graphics.setFont(titleFont);
graphics.drawText(thing.title, firstrowPostion, y, (DrawStyle.LEFT | DrawStyle.ELLIPSIS | DrawStyle.TOP), 250);
}
Das erste Mal, wenn alles perfekt funktioniert, aber sobald ich auf dem Boden der Liste und beginnen zu blättern wieder hoch, die Bilder sind verschwunden. Irgendwelche Vorschläge?
Edit: Ich habe das zweite Mal durch diesen Code herausgefunden:
try {
InputStream inputStream = Connector.openInputStream(ImagePath);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
int i = 0;
while ((i = inputStream.read()) != -1) {
outputStream.write(i);
}
byte[] data = outputStream.toByteArray();
EncodedImage eimg = EncodedImage.createEncodedImage(data, 0,
data.length);
Bitmap image = eimg.getBitmap();
inputStream.close();
outputStream.close();
return ImageUtility.resizeBitmap(image, 70, 70);
} catch (IOException e) {
return null;
} catch (IllegalArgumentException ex) {
return null;
}
}
dass InputStream inputStream = Connector.openInputStream(ImagePath);
eine IOException wirft. Ich verstehe von here , dass IO unter diesen Bedingungen ausgelöst werden: aber ich weiß nicht, welche die Ursache ist: 1. mehr als eine openInputStream() auf einzelne Instanz von Dateiverbindung. 2. openInputStream() bei bereits geschlossener Dateiverbindung. 3. openInputStream() für ein Verzeichnis.
nochmal irgendwelche Vorschläge?