我有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);
无法在整个列表中顺畅滚动。
任何想法,评论。
答案 0 :(得分:0)
你的格式是搞砸了,但是如果我理解正确的话,你会在每次回调时下载吗?
避免这种情况的一种方法是创建一个在需要屏幕时启动的线程,并异步执行下载(每次!)并将图像粘贴到缓存中。然后drawListRow回调只是从缓存中拉出来的。
答案 1 :(得分:0)
好像你的代码在paint方法中执行。这一切都发生在UI线程上(意味着您阻止UI,发出请求,等待响应,设置图像,然后每次绘制时绘制图像)。看到请求可能需要大约3秒钟,您的UI将冻结那么长时间。
你应该做什么在类的构造函数中获取图像,设置类的实例变量,然后使用该实例变量设置g.drawBitmap。
简而言之,paint方法中唯一的代码应该是g.drawBitmap,以防止不连贯的滚动。