将图像URL添加到listfield中的位图图像

时间:2010-08-30 10:45:58

标签: java blackberry listfield

我有50/100图像网址和特定文字,我将它们添加到矢量中,添加带回调的列表字段,

我每次使用函数调用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 :(得分:0)

你的格式是搞砸了,但是如果我理解正确的话,你会在每次回调时下载吗?

避免这种情况的一种方法是创建一个在需要屏幕时启动的线程,并异步执行下载(每次!)并将图像粘贴到缓存中。然后drawListRow回调只是从缓存中拉出来的。

答案 1 :(得分:0)

好像你的代码在paint方法中执行。这一切都发生在UI线程上(意味着您阻止UI,发出请求,等待响应,设置图像,然后每次绘制时绘制图像)。看到请求可能需要大约3秒钟,您的UI将冻结那么长时间。

你应该做什么在类的构造函数中获取图像,设置类的实例变量,然后使用该实例变量设置g.drawBitmap。

简而言之,paint方法中唯一的代码应该是g.drawBitmap,以防止不连贯的滚动。