我尝试使用share()
方法,包括图片,但我无法提供正确的图片路径。我应该在哪里放置图像文件,路径是什么(放入默认包并尝试" jar:///myimage.png"没有工作),为什么没有记录清楚?
答案 0 :(得分:3)
图像可以存储在跟随窗口路径的存储器中 C:\ Users \用户userName.cn1
可以使用以下代码读取图像
InputStream is = Storage.getInstance().createInputStream("tizbn.JPG");
EncodedImage i = EncodedImage.create(is, is.available());
从默认文件夹
加载图片Image i =EncodedImage.create("/tizbn.png");
从主题加载图片
EncodedImage current = (EncodedImage) fetchResourceFile().getImage("tizbn.png");
答案 1 :(得分:0)
共享API适用于https://www.codenameone.com/javadoc/com/codename1/io/FileSystemStorage.html[FileSystemStorage],而不适用于https://www.codenameone.com/javadoc/com/codename1/io/Storage.html[Storage]。
您需要将文件保存到文件系统路径中,该路径始终是绝对路径,我们建议使用app home存储文件。 developer guide section on the ShareButton中有一个示例包含此内容:
Form hi = new Form("ShareButton");
ShareButton sb = new ShareButton();
sb.setText("Share Screenshot");
hi.add(sb);
Image screenshot = Image.createImage(hi.getWidth(), hi.getHeight());
hi.revalidate();
hi.setVisible(true);
hi.paintComponent(screenshot.getGraphics(), true);
String imageFile = FileSystemStorage.getInstance().getAppHomePath() + "screenshot.png";
try(OutputStream os = FileSystemStorage.getInstance().openOutputStream(imageFile)) {
ImageIO.getImageIO().save(screenshot, os, ImageIO.FORMAT_PNG, 1);
} catch(IOException err) {
Log.e(err);
}
sb.setImageToShare(imageFile, "image/png");