2016-02-20 78 views
1

任何人都可以告诉我如何从codenameOne中的.cn1(Stoarge)中读取图像.png或.jpg。如何从codenameone中的存储中读取图像

我试图两种方式它们都不要吨工作:

1- IMG = EncodedImage.create(Storage.getInstance()createInputStream( “img.png”));

2- img = Image.createImage(Storage.getInstance()。createInputStream(“img.png”));

我得到的错误,分别是

1-警告:负载使用EncodedImage.create(InputStream的)可能会导致内存问题的大图片,请尝试使用EncodedImage.create(InputStream中,INT)

- >当我尝试EncodedImage.create(InputStream中,INT大小)我执行的功能: “findImageViewer()setImage(IMG);”,我得到: 显示java.lang.NullPointerException

2)with“findImageViewerRdM().setImage(img);”我得到java.lang.NullPointerException

+0

您需要提供异常的堆栈跟踪。我的猜测是,findImageViewer()返回null,因为你在表单显示之前调用它。你应该在之前的演出中使用findImageViewer(f)。 –

回答

2

这对我很有用,所以请检查它。

InputStream is = Storage.getInstance().createInputStream("tizbn.JPG"); 

     EncodedImage i = EncodedImage.create(is, is.available()); 
     ImageViewer imageViewer = new ImageViewer(i); 
     f.addComponent(BorderLayout.CENTER, imageViewer); 
+0

我猜想在Eclipse上安装CN1时出了点问题,因为即使是最基本的东西也不会像下面这样工作:Image i = Image.createImage(“/ sil5.png”); \t \t \t findImageViewerRdM()。setImage(i); – Anas

+0

我会尝试重新安装并看到。但谢谢你的主席的答案! – Anas

+0

现在可以读取和显示图像,问题与findImageViewer有关... – Anas

2

img = EncodedImage.create(Storage.getInstance()。createInputStream(“img.png”,int)); 请使用下一个方法与int变量一 创建(InputStream我,int大小)编码图像

+0

我也尝试过,但正如我在我的问题中所描述的,当我尝试在图像查看器上显示它时,我得到一个空指针。 – Anas

相关问题