Добавить URL-адрес изображения к растровому изображению в списке - PullRequest
1 голос
/ 30 августа 2010

У меня есть 50/100 URL-адрес изображения с определенным текстом, я добавляю их в вектор, добавляю поле списка с обратным вызовом,

Я загружаю изображение каждый раз при вызове функции UrlToImage У меня проблема, списокслишком медленно, значок загрузки отображается в верхней правой части симулятора.

UrlToImage img = new UrlToImage(imageUrl);
bit = img.getbitmap();
pic = new BitmapField(bit); 
g.drawBitmap(xpos, y+10, bit.getWidth(), bit.getHeight(), bit, DrawStyle.LEFT,0);

Невозможно плавно прокрутить список.

Любая идея, комментарии.

Ответы [ 2 ]

0 голосов
/ 01 сентября 2010

Похоже, ваш код выполняется внутри метода рисования. Все это происходит в потоке пользовательского интерфейса (это означает, что вы блокируете пользовательский интерфейс, делаете запрос, ждете ответа, устанавливаете изображение и затем рисуете изображение каждый раз, когда происходит рисование). Если запрос может занять около 3 секунд, ваш пользовательский интерфейс будет зависать так долго.

Что вы должны делать, выбирая ваше изображение в конструкторе вашего класса, устанавливая переменную экземпляра вашего класса, а затем g.drawBitmap с этой переменной экземпляра.

Короче говоря, единственный код в вашем методе рисования должен быть g.drawBitmap, чтобы предотвратить прерывистую прокрутку.

0 голосов
/ 01 сентября 2010

Ваше форматирование все испорчено, но если я вас правильно понимаю, вы загружаете при каждом обратном вызове?

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

...