/ / Blackberry: Зображення, що зникають з користувача drawListRow - blackberry, listfield

Blackberry: Зображення зникають з власного drawListRow - blackberry, listfield

Мені вдалося отримати зображення в користувальницькому 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);
}

Перший раз, хоча все працює відмінно, але як тільки я дійшов до нижньої частини списку і знову почав прокручуватися, знімки зникли. Будь-які пропозиції?

Редагувати: Я зрозумів другий раз через цей код:

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;
}
}

це InputStream inputStream = Connector.openInputStream(ImagePath); кидає IOException. Я розумію з тут що IO буде викинутий за таких умов: але я не знаю, яка причина: 1. більше одного openInputStream () на одному екземплярі fileconnection. 2. openInputStream () на вже закритому з'єднанні файлів. 3. openInputStream () на каталог.

знову якісь пропозиції?

Відповіді:

0 для відповіді № 1

Я зрозумів, що краще всього створити окремий масив повністю сформованих зображень і відправити обидва ці та масиви речей до drawlistrow, замість того, щоб намагатися сформувати і намалювати їх як кожний рядок.