Как переопределить загруженное изображение с изображением по умолчанию в поле со списком черных ягод
За последние два дня я делаю поле списка с веб-изображением в черной ягоде, потому что я новичок. Я отображаю поле списка с некоторым изображением по умолчанию. Когда я загрузил фактическое изображение из Интернета, оно не может заменить изображение по умолчанию. Я использовал один поток, чтобы загрузить изображения одно за другим. Но изображения не переопределяются с изображением по умолчанию должным образом. Пожалуйста, помогите я. Вот мой код поля списка.
public void drawListRow(ListField listField,final Graphics graphics,int index,
final int y, int width)
{
this.graphics=graphics;
this.inde=index;
class ImageDowload extends Task
{
void doTask()
{
load=new DowloadImage(picture[inde]);
if(load.getData()!=null)
{
_bmap=load.getBitmap();
graphics.drawBitmap(3,y+7,placeholder.getWidth(), placeholder.getHeight(),_bmap, 0, 0);
}
}
}
taskWorker.addTask(new ImageDowload());
String text=(String) get(listField, index);
String pricedetails=price[index];
graphics.setColor(rgb);
graphics.setFont(Utility.getBigFont(DConfig.getFSize()+4));
graphics.drawBitmap(3,y+7,placeholder.getWidth(), placeholder.getHeight(),placeholder, 0, 0);
graphics.drawText(text,100,y+25);
graphics.drawText(pricedetails+" $",420,y+25);
graphics.drawLine(0, y+74, DConfig.disWidth, y+74);
}
1 ответ
Вы определенно не хотите помещать свой запрос в drawListRow()
, так как он будет срабатывать каждый раз, когда его нужно перекрашивать.
Просто начните загрузку для всех изображений при создании ListField (или в любое время, которое имеет смысл). В вашем drawListRow()
когда вы начнете рисовать растровое изображение, проверьте, существует ли загруженное, и рисует ли оно, если не рисует по умолчанию. Теперь, когда загрузка каждого изображения завершена, просто invalidate()
ListField, и он будет рисовать недавно загруженное изображение.