URLImage.createCachedImage
が呼び出されて画像が利用できない(接続されていないなど)ときに、再び呼び出されない接続が復帰したらリロードしてください。コードネーム1:画像をロードするときにサーバー/接続が使用できないようにする
説明:接続が利用できない場合
、それはブランク画像を示しています。また、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.createCachedImageは別のスレッドで実行されますか?私は常に競争状態のようなものを得ているようです。画面が初めて読み込まれるとき、画像は常にそこにはありません。その後、アプリを再実行すると表示されます。 – ikevin8me
この問題は、 'Image scaledImage = image.scaled(50、50);'を呼び出すと起こりそうです。イメージがまだロードされていない場合は、単純にプレースホルダイメージの縮尺のコピーを作成することができます。 –
ありがとう、@steve。それが答えでした! – ikevin8me