加载图片的问题

时间:2013-08-21 07:16:29

标签: java-me

我正在尝试检索特定文件夹中的所有图像,为此我创建了一个矢量并将图像移动到该矢量,我使用的代码是

imageNameVector.removeAllElements();
        try { 
                FileConnection fc = (FileConnection)Connector.open("file:///e:/Images", Connector.READ_WRITE);
                if(!fc.exists())
                {
                    fc.mkdir();
                }
                Enumeration filelist = fc.list("*.jpg", true);
                String filename;
                while(filelist.hasMoreElements()) {
                    filename = (String) filelist.nextElement();
                    imageNameVector.addElement(filename);
            }   
            fc.close();
        }
        catch (IOException ioe)
        {
            System.out.println("IOException: "+ioe.getMessage());            
        }
        catch (SecurityException se) {
            System.out.println("SecurityException: "+se.getMessage());            
        }

        System.out.checkError();



        return imageNameVector;
}

现在我想从矢量中检索元素并将其转换为图像,

   imageName  =  (String) imageNameVector.elementAt(1);
   try{
       image   = Image.createImage(imageName);
       }catch(Exception e){
            Alert alert  =   new Alert("Sngjfkgnlkjf")    ;
            alert.setString(""+imageName+e);
            display.setCurrent(alert);
       }

它显示异常Abc,jpg无法读取,有人请帮我解决....

2 个答案:

答案 0 :(得分:0)

createImage(String name)方法用于从命名资源创建映像,而不是从文件创建映像。您可以使用createImage(InputStream stream),stream = Connector.openInputStream(“file:/// e:/Images/Abc.jpg”)等。

答案 1 :(得分:0)

您无法直接访问FileSystem路径。使用下面的代码从文件系统访问加载图像

public static Image getImageFromPhone(String path) {
        try {
            FileConnection fconn = (FileConnection) Connector.open(path, Connector.READ);
            if (!fconn.exists()) {
                return null;
            }
            int length = (int)fconn.fileSize();
            byte[] data = new byte[length];
            DataInputStream din = fconn.openDataInputStream();
            din.readFully(data);
            fconn.close();
            return Image.createImage(data, 0, data.length);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }