似乎如果在调用URLImage.createCachedImage
时加载并且图像不可用(没有连接等),则在连接恢复时不会再次调用它来重新加载。
说明
当连接不可用时,它会显示空白图像。当再次调用Display.getInstance()。callSerially(...)时,它仍然显示相同的空白图像。似乎没有调用连接来尝试加载图像,但空白图像显然已成为缓存。
我不确定我是否正确描述了我的问题,但这里是简化的问题:当连接/服务器是如何处理图像加载和处理事件时不可用?(我以为URLImage.createCachedImage知道图片是否未加载,会再试一次。)
我有这段代码加载Image:
protected static final Image loadImage(String imageAccessLocation) {
int filenameIndex = imageAccessLocation.lastIndexOf("/");
String filename = imageAccessLocation.substring(filenameIndex + 1);
String imageAccessBaseLocation = Application.getInstance().getImagesAccessBaseLocation();
String imageAccessURL = imageAccessBaseLocation + imageAccessLocation;
int displayWidth = Display.getInstance().getDisplayWidth();
EncodedImage imagePlaceholder = EncodedImage.createFromImage(Image.createImage(displayWidth, displayWidth / 5, 0xffff0000), true);
Image image = URLImage.createCachedImage(filename, imageAccessURL, imagePlaceholder, FLAG_RESIZE_SCALE);
return image;
}
protected static final Container prepareImageContainer(Item item) {
Image image = item.getImage();
if(image == null) {
return null;
}
Image scaledImage = image.scaled(50, 50);
Container imageContainer = new Container();
imageContainer.add(scaledImage);
return imageContainer;
}
private final void prepare() {
Container imageContainer = prepareImageContainer(lookslike);
Container textContainer = prepareTextDescription(lookslike);
add(imageContainer);
add(textContainer);
}
答案 0 :(得分:2)
如果URLImage由于某种原因尚未完成下载图像,则其ForeigKey
方法将返回true。这是一种检测是否尚未完成下载的方法。它不会告诉您下载是否失败或者是否尚未完成,但您可以将其与某种超时结合使用以检查图像是否已下载,如果没有,则将其替换为相同URL的新URLImage
不太理想,我知道。您可以在问题跟踪器中提交RFE,我们将评估该请求。