Как предотвратить AdobeCreativeSDK автоматическое сохранение изображений на телефон Android?
У меня есть проблема здесь всякий раз, когда намерение редактора активировано, 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});
}
Я понял, что приведенный выше код может фактически выполнять это сохранение, однако это автоматически сгенерированный файл. Могу ли я сделать что-нибудь, чтобы предотвратить сохранение?
1 ответ
Автоматическое сохранение с помощью редактора изображений
Редактор изображений Creative SDK сохраняет отредактированное изображение, когда пользователь закрывает редактор изображений. Невозможно предотвратить это поведение.
Сохраненное изображение Uri
возвращается в активность вашего приложения в onActivityResult()
метод. Для демонстрации см. Этот пример приложения на GitHub.
Указание места сохранения отредактированного изображения
Можно указать место сохранения отредактированного изображения, используя withOutput()
метод, передавая это File
,
Вы можете увидеть все дополнительные методы в Руководстве по редактору изображений на портале разработчика Creative SDK.
Обратите внимание, что портал разработчика в настоящее время утверждает, что вы должны пройти 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();