Java 使用代码名One共享表单或容器
我想在CN1上分享我的应用程序屏幕,想法是创建一个屏幕,作为JPG和分享它 从其他帖子我有这个代码Java 使用代码名One共享表单或容器,java,share,codenameone,Java,Share,Codenameone,我想在CN1上分享我的应用程序屏幕,想法是创建一个屏幕,作为JPG和分享它 从其他帖子我有这个代码 @Override protected void onGpsTracker_Button1Action(Component c, ActionEvent event) { String file="toShare.jpeg"; String path=""; Image i= Image.createImage(c.getComponentForm().getWidth(),c
@Override
protected void onGpsTracker_Button1Action(Component c, ActionEvent event) {
String file="toShare.jpeg";
String path="";
Image i= Image.createImage(c.getComponentForm().getWidth(),c.getComponentForm().getHeight());
c.paintComponent(i.getGraphics());
OutputStream save;
try {
save = Storage.getInstance().createOutputStream(file);
ImageIO.getImageIO().save(i, save, ImageIO.FORMAT_JPEG,(float) 0.90f);
} catch (IOException ex) {
ex.printStackTrace();
}
String [] entries= Storage.getInstance().listEntries();
for( int k=0;k< entries.length;k++){
if (entries[k].startsWith("toShare")){
path=(String)Storage.getInstance().readObject(entries[k]);}}
findShareSec().setImageToShare(path, "image/jpeg");
}
因此图像不会被保存。
图像保存后,我如何共享它??
在Android Studio上,我使用shareIntent,并在周末之前刚刚添加的每个应用程序上共享
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");
以下是上述代码的Java 5版本:
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);
Util.cleanup(os);
} catch(IOException err) {
Log.e(err);
}
我收到此消息错误:在-source 1.5 try(OutputStream os=FileSystemStorage.getInstance().openOutputStream(imageFile)){(使用-source 7或更高版本启用try with resources)中不支持try with resources如果您有一个较旧的Java 5项目,则需要对其进行修改,使其使用Java 8语法,否则生成将在本地和生成服务器中失败。我编辑了上面的代码以使用标准Java 5代码。您可以按照以下说明迁移到新的Java 8语法:
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);
Util.cleanup(os);
} catch(IOException err) {
Log.e(err);
}