1

我有 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);

无法在整个列表中平滑滚动。

任何想法,评论。

4

2 回答 2

0

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

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

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

于 2010-09-01T13:48:07.647 回答
0

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

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

于 2010-08-31T20:14:37.260 回答