Image 正在获取要与Codename One一起使用的远程映像
我正在尝试检索远程图像以在标签中使用它。我的代码如下:Image 正在获取要与Codename One一起使用的远程映像,image,codenameone,Image,Codenameone,我正在尝试检索远程图像以在标签中使用它。我的代码如下: Dimension dimension = new Dimension(100, 100); ImageDownloadService.createImageToStorage("http://www.example.com/logo-icono.ico",label, "cacheID-unique-identifier",dimension); 但是,当我运行项目时,出现了以下错误: java.lang.IllegalArgument
Dimension dimension = new Dimension(100, 100);
ImageDownloadService.createImageToStorage("http://www.example.com/logo-icono.ico",label, "cacheID-unique-identifier",dimension);
但是,当我运行项目时,出现了以下错误:
java.lang.IllegalArgumentException: create image failed for the given image data of length: 3906
at com.codename1.ui.Image.createImage(Image.java:627) at com.codename1.ui.Image.createImage(Image.java:627)
at com.codename1.ui.EncodedImage.getInternal(EncodedImage.java:270)
at com.codename1.ui.EncodedImage.getInternalImpl(EncodedImage.java:245)
at com.codename1.ui.EncodedImage.drawImage(EncodedImage.java:433)
at com.codename1.ui.Graphics.drawImage(Graphics.java:505)
at com.codename1.ui.plaf.DefaultLookAndFeel.drawComponent(DefaultLookAndFeel.java:1079)
at com.codename1.ui.plaf.DefaultLookAndFeel.drawLabel(DefaultLookAndFeel.java:380)
at com.codename1.ui.Label.paint(Label.java:335)
at com.codename1.ui.Component.internalPaintImpl(Component.java:1029)
at com.codename1.ui.Component.paintInternalImpl(Component.java:1003)
at com.codename1.ui.Component.paintInternal(Component.java:978)
at com.codename1.ui.Container.paint(Container.java:903)
at com.codename1.ui.Component.internalPaintImpl(Component.java:1023)
at com.codename1.ui.Component.paintInternalImpl(Component.java:1003)
at com.codename1.ui.Component.paintInternal(Component.java:978)
at com.codename1.ui.Container.paint(Container.java:903)
at com.codename1.ui.Form.paint(Form.java:2716)
at com.codename1.ui.Component.internalPaintImpl(Component.java:1023)
at com.codename1.ui.Component.paintInternalImpl(Component.java:1003)
at com.codename1.ui.Component.paintInternal(Component.java:978)
at com.codename1.ui.Component.paintInternal(Component.java:946)
at com.codename1.ui.Component.paintComponent(Component.java:1223)
at com.codename1.ui.Component.paintComponent(Component.java:1175)
at com.codename1.impl.CodenameOneImplementation.paintDirty(CodenameOneImplementation.java:382)
at com.codename1.impl.javase.JavaSEPort.paintDirty(JavaSEPort.java:963)
at com.codename1.ui.Display.edtLoopImpl(Display.java:993)
at com.codename1.ui.Display.mainEDTLoop(Display.java:920)
at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)
at com.codename1.ui.Image.createImage(Image.java:627)
我做错了什么?Ico文件是特定于windows的,大多数设备不支持加载它们。设备中仅保证PNG和JPEG格式
我还建议在适用的情况下使用URLImage。我已将.ico图像更改为有效的.png,但错误仍然存在:java.lang.IllegalArgumentException:为长度为3906的给定图像数据创建图像失败。似乎有尺寸限制。这是否正确?如果使用相同的缓存密钥,它仍会带来旧图像,您可以清除存储。是。通过更改缓存密钥,它工作了。我不知道在开发环境中这样的数据被保留了下来。?如何以编程方式清理存储?在您的另一个问题“有时图像”中回答了这个问题。getWidth()返回以下异常:对于给定长度的图像数据,创建图像失败,如何解决?