Как переопределить загруженное изображение с изображением по умолчанию в поле списка черных ягод - PullRequest
0 голосов
/ 21 июня 2011

За последние два дня я делаю поле списка с веб-изображением в черной ягоде, потому что я новичок.Я отображаю поле списка с некоторым изображением по умолчанию. Когда я загрузил фактическое изображение из Интернета, оно не может заменить изображение по умолчанию. Я использовал один поток, чтобы загрузить изображения одно за другим. Но изображения не переопределяются с изображением по умолчанию должным образом. Пожалуйста, помогитеme.Here мой код поля списка.

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 Ответ

1 голос
/ 21 июня 2011

Вы определенно не хотите помещать свой запрос в drawListRow(), так как он будет срабатывать каждый раз, когда придется перекрашивать.

Просто начните загрузку для всех изображений при создании ListField (или в любое время, которое имеет смысл). В вашем drawListRow(), когда вы идете рисовать растровое изображение, проверьте, существует ли загруженное, и если оно действительно рисует, если не рисовать по умолчанию. Теперь, когда загрузка каждого изображения завершена, просто invalidate() ListField, и он будет рисовать недавно загруженный образ.

...