cn1 - 获取share()的图像文件路径

时间:2016-02-26 01:12:08

标签: share codenameone

我尝试使用share()方法,包括图片,但我无法提供正确的图片路径。我应该在哪里放置图像文件,路径是什么(放入默认包并尝试" jar:///myimage.png"没有工作),为什么没有记录清楚?

2 个答案:

答案 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");