2016-10-23 8 views
1

が動作していない私は、ドキュメントを経て:フェッチしない限り、それは()メソッドが、その場合IOコードで呼び出されるGUIによってために要求されるような画像を遅延フェッチされるデフォルトhttps://www.codenameone.com/javadoc/com/codename1/ui/URLImage.html#fetchURLImageフェッチ方法

すぐに実行されます。

fetch()が呼び出された後にストレージファイルがリフレッシュされないようです。私は、アプリケーションを実行し、「https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png

2):ここで私は

1を実行したテストでは、私がURLImage以下のイメージで初めて作成する)です。画像はうまく表示されます

3)新しいURL画像「http://awoiaf.westeros.org/images/thumb/9/93/AGameOfThrones.jpg/400px-AGameOfThrones.jpg」でアプリケーションを再実行しますが、fetch()が呼び出されていますが、以前の画像が表示されます。

Form hi = new Form("Hi World"); 

    EncodedImage placeholder = EncodedImage.createFromImage(Image.createImage(hi.getWidth(), hi.getWidth()/5, 0xffff0000), true); 
    URLImage background = URLImage.createToStorage(placeholder, "400px-AGameOfThrones.jpg", 
      "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"); 
    background.fetch(); 

    Label label = new Label(); 
    label.setIcon(background); 
    hi.addComponent(label); 
    hi.show(); 

セカンドラン:

Form hi = new Form("Hi World"); 

    EncodedImage placeholder = EncodedImage.createFromImage(Image.createImage(hi.getWidth(), hi.getWidth()/5, 0xffff0000), true); 
    URLImage background = URLImage.createToStorage(placeholder, "400px-AGameOfThrones.jpg", 
      "http://awoiaf.westeros.org/images/thumb/9/93/AGameOfThrones.jpg/400px-AGameOfThrones.jpg"); 
    background.fetch(); 

    Label label = new Label(); 
    label.setIcon(background); 
    hi.addComponent(label); 
    hi.show(); 

答えて

1

ドキュメントは、おそらく取得方法は、単にダウンロードキューに画像が追加されますが、イメージになるまでブロックされませんので、すぐに同期を意味するものではありませんが、明確にする必要があります物理的に存在する。

この種の動作が必要な場合は、おそらくURL画像が最適な解決策ではありません。 ConnectionRequestにまたはImageのダウンロード方法を使用して、addToQueueAndWaitを結合することができます。

+0

ありがとうございます。バックグラウンドで何が起こっているのか、つまりイメージを更新/ダウンロードする基準に基づいて何が起こっているのかを理解したいと思います。その後もアプリを何度も実行しても、画像は更新されません。特定の最終ダウンロードタイムスタンプに基づいていますか? – 3lix

+1

'URLImage'は既にダウンロードされた画像をダウンロードしません。更新をチェックしません。強制的に更新する場合は、ローカルストレージファイルを削除する必要があります。 –

+0

私はそれが今どのように動作するのか理解しています。ありがとう – 3lix

関連する問題