如果在调用URLImage.createCachedImage
加载并且图像不可用(无连接等(时,当连接恢复时不会再次调用它以重新加载。
描述:
当连接不可用时,它会显示空白图像。当再次调用 Display.getInstance((.callSerially(...( 时,它仍然显示相同的空白图像。它似乎不是在调用连接来尝试加载图像,但空白图像显然已成为缓存。
我不确定我是否正确描述了我的问题,但这里有一个简化的问题:如何处理图像加载并在连接/服务器不可用时处理事件? (我以为URLImage.createCachedImage知道图像是否未加载,并会重试。
我有这段代码来加载图像:
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);
}
你是对的。 如果存在网络问题,URLImage 将静默失败。
如果 URLImage 由于某种原因尚未完成图像下载,则其isAnimation()
方法将返回 true。 这是一种检测它是否尚未完成下载的方法。 它不会告诉您下载是失败还是尚未完成,但您可以将其与某种超时相结合,以检查图像是否已下载,如果没有,请将其替换为同一 URL 的新 URLImage。
不理想,我知道。 您可以在问题跟踪器中提交 RFE,我们将评估请求。