У меня есть пара вопросов относительно просмотра изображений.ImageViewer не работает отлично codenameone
1) Автозапуска ImageViewer не работают. ImageViewer работает изначально, когда приложение запускается впервые. Но как только откроется какая-либо другая форма &, а затем вернемся к форме, содержащей imageViewer, автоспуск не работает.
Код для IMG просмотра слайд авто
placeholderForTable = (EncodedImage) theme.getImage("placeholderWithAnimate.png");
placeholderForTable = placeholderForTable.scaledEncoded(screenWidth, 30 + (screenWidth * 1/3));
BusinessForumImagesConnection bfic = new BusinessForumImagesConnection();
bfic.businessForumImagesConnectionMethod(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
DefaultListModel<Image> images;
if (bfic.response != null) {
for (Map<String, Object> entrySet : bfic.response) {
String imgUrl = (String) entrySet.get("imgUrl");
Image adImage = URLImage.createToStorage(placeholderForTable, imgUrl.substring(0, imgUrl.lastIndexOf(".")), + imgUrl, URLImage.RESIZE_SCALE);
adsSlideImagesArray.add(adImage);
}
}
ImageViewer imv = new ImageViewer();
Container adsContainer = BoxLayout.encloseY(imv);
if (adsSlideImagesArray != null) {
slideIndex = 0;
images = new DefaultListModel<>(adsSlideImagesArray);
imv.setImage(images.getItemAt(0));
imv.setImageList(images);
imv.setSwipePlaceholder(Image.createImage(100, 100));
Runnable r = new Runnable() {
public void run() {
if (slideIndex < images.getSize()) {
nextImage = (Image) images.getItemAt(slideIndex);
if (nextImage != null) {
imv.setImage(nextImage);
}
slideIndex++;
} else {
slideIndex = 0;
}
}
};
if (uITimer == null) {
uITimer = new UITimer(r);
}
if (uITimer != null) {
uITimer.schedule(5000, true, f); //5 seconds
}
}
});
2) Некоторые случайные изображения не всегда отображаются в средстве просмотра изображений. Это происходит как в симуляторе & реальных устройствах. Я проверил, если UrlImage кэшируется или нет в хранилище. Все файлы сохранены, но некоторые из них никогда не отображаются в средстве просмотра изображений. Вместо изображения Viewer, я устанавливаю значок изображения в метку и зацикливаю их. У всех этикеток есть соответствующие значки, но в imageViewer есть проблема. Код такой же, как указано выше.
System.out.println (nextImage) внутри runnable works, поэтому я думаю, что таймер работает нормально, но автоспуск останавливается. И для второго вопроса, да, я вижу только placeholder img вместо фактического изображения (Ps файл уже сохранен в папке .cn1), но он не отображается. – beck
'URLImage' является специальным. Опять же, не используйте его для просмотра изображений. Я предлагаю использовать отладчик и проверять, что таймер оживляет представление, которое в настоящее время находится на экране. –
thankyou ... я решил это. Для таймера я сделал небольшую ошибку, что инициализировал uiTimer, если он равен нулю. Таким образом, он запускается в первый раз, и если я вернусь к этой форме из других форм, это не сработает. Установка uiTimer = null в начале решения проблемы. – beck