CodenameOne项目中如何通过代码获取resources文件夹内的图片?
在CodenameOne Maven项目中加载resources下的图片
CodenameOne的资源加载机制和标准Java SE不同,普通Java的资源加载方法(比如Class.getResourceAsStream)在跨平台场景下可能不生效,得用它专属的API来处理:
- 直接加载图片:使用
Image.createImage()方法,路径以斜杠开头指向resources下的相对路径(因为resources文件夹的内容会被打包到应用资源根目录)。示例代码:
Image img = Image.createImage("/images/your_image.png");
- 通过输入流加载:如果需要先获取输入流,用
Display类的getResourceAsStream方法,第一个参数传当前类的Class对象,第二个参数同样是带斜杠的图片路径:
InputStream imgStream = Display.getInstance().getResourceAsStream(getClass(), "/images/your_image.png"); Image img = Image.createImage(imgStream);
注意事项
- 路径必须以
/开头,否则会以当前类的包路径为基准查找,导致找不到资源 - 文件名和路径要注意大小写,部分平台(比如iOS、Android)对文件大小写敏感
- 确认Maven的默认配置没有修改,保证
src/main/resources下的文件会被正确打包到构建产物中
内容的提问来源于stack exchange,提问作者hrugani
相关产品推荐
相关产品推荐

