每当激活编辑器意图时,我都会遇到问题,sdk会自动将图像保存到图库中。在意图内完成编辑后再次进行一次。如何阻止自动保存?
AdobeImageEditorActivity.class
protected void performSave(Bitmap bitmap, Uri saveUri, CompressFormat outputFormat, int quality, boolean hires, AdobeImageEditorActivity.FinalAction action) {
logger.info("performSave, uri:%s, quality: %d, action:%s", new Object[]{saveUri, Integer.valueOf(quality), action});
File destFile;
if(saveUri != null) {
destFile = new File(saveUri.getPath());
} else {
destFile = this.getDefaultOutputDestination(outputFormat);
}
try {
logger.log("trying to create the new file...");
if(!destFile.exists() && !destFile.createNewFile()) {
logger.error("Failed to create the file");
}
} catch (IOException var11) {
var11.printStackTrace();
try {
logger.error("using a temporary file!");
destFile = File.createTempFile("aviary-image-", ".jpeg");
} catch (IOException var10) {
var10.printStackTrace();
}
}
LocalDataService service = (LocalDataService)this.getMainController().getService(LocalDataService.class);
assert service != null;
service.setDestImageUri(Uri.parse(destFile.getAbsolutePath()));
AdobeImageEditorActivity.SaveHiResImageTask mSaveTask = new AdobeImageEditorActivity.SaveHiResImageTask(destFile, action, outputFormat, quality, hires);
mSaveTask.execute(new Bitmap[]{bitmap});
}
我意识到上面的代码可能实际上正在执行保存,但是它是一个自动生成的文件,有什么办法可以防止保存发生吗?
答案 0 :(得分:0)
当用户关闭图像编辑器时,Creative SDK图像编辑器会保存已编辑的图像。这是不可能阻止这种行为的。
已保存的图片Uri
会以onActivityResult()
方式传回您应用的活动。有关基本演示,请参阅this sample app on GitHub。
可以使用withOutput()
方法指定保存编辑图像的位置,并将其传递给File
。
您可以在the Creative SDK developer portal's Image Editor guide上看到所有可选方法。
请注意,开发人员门户网站目前声明您应该将Uri
传递给withOutput()
,但这是不正确的。您应该传递File
:
/* 1) Change the argument to your desired location */
File file = new File(Environment.getExternalStorageDirectory() + File.separator + "test.jpg");
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
Intent imageEditorIntent = new AdobeImageIntent.Builder(this)
.setData(imageUri)
.withOutput(file) /* 2) Pass the File here */
.build();