Я прошел через документации: https://www.codenameone.com/javadoc/com/codename1/ui/URLImage.html#fetchURLImage выборки метод не работает
По умолчанию изображение скачиваются лениво, как она запрашивается с помощью графического интерфейса пользователя, если не получать() метод вызывается в этом случае код IO выполняется немедленно.
Похоже, что файл хранилища не обновляется после вызова fetch(). Вот тест я побежал
1) создать URLImage в первый раз со следующим изображением: «https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png»
2) Я запустить приложение. Изображение хорошо отображено
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();
спасибо. Я хотел бы понять, что происходит в фоновом режиме, на основе того, какие критерии он обновляет/загружает изображение. Я запускаю приложение несколько раз подряд, и изображение не обновляется. Это зависит от конкретной последней отметки времени загрузки? – 3lix
'URLImage' никогда не загружает загруженное изображение. Он не проверяет наличие обновлений. Если вы хотите принудительно выполнить обновление, вам необходимо удалить локальный файл хранилища. –
Я понимаю, как это работает сейчас. благодаря – 3lix