图像查看器无法正常工作代号一
ImageViewer isnot working fine codenameone
我有几个关于图像查看器的问题。
1)ImageViewer autoslides 不是 working.The 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 是否缓存在存储中。所有文件都已保存,但其中一些文件从未显示在图像查看器中。
我没有使用图像查看器,而是在标签中设置图像图标并循环显示它们。所有标签都有各自的图标,但 imageViewer 有问题。代码同上
确保您的计时器启动并且没有人取消它。
你看到的是占位符而不是图像吗?这样的细节是必不可少的。
图像查看器堆栈中较深的图像不会被预取。请注意,URLImage
不是为图像查看器设计的,并且可能是一个坏主意,因为 URLImage
会调整图像的大小。我们建议使用下载方法为图像查看器获取完整尺寸的图像看到这个旧 post:https://www.codenameone.com/blog/image-viewer-from-the-web.html
我有几个关于图像查看器的问题。
1)ImageViewer autoslides 不是 working.The 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 是否缓存在存储中。所有文件都已保存,但其中一些文件从未显示在图像查看器中。 我没有使用图像查看器,而是在标签中设置图像图标并循环显示它们。所有标签都有各自的图标,但 imageViewer 有问题。代码同上
确保您的计时器启动并且没有人取消它。
你看到的是占位符而不是图像吗?这样的细节是必不可少的。
图像查看器堆栈中较深的图像不会被预取。请注意,URLImage
不是为图像查看器设计的,并且可能是一个坏主意,因为 URLImage
会调整图像的大小。我们建议使用下载方法为图像查看器获取完整尺寸的图像看到这个旧 post:https://www.codenameone.com/blog/image-viewer-from-the-web.html