2016-06-30 26 views
1

Ich habe hier ein Problem, wenn der Editor Intent aktiviert ist, speichert die SDK automatisch das Bild in der Galerie. Und noch einmal, nachdem die Bearbeitung innerhalb der Absicht erfolgt ist. Wie verhindere ich das automatische Speichern hier?Wie verhindert man AdobeCreativeSDK automatisch speichern Bilder auf Android-Handy?

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}); 
    } 

erkannte ich die oben genannten Code könnte tatsächlich sein, dass speichern durchführen, jedoch ist es eine automatisch generierte Datei, gibt es irgendwelche Möglichkeiten, ich tun kann, die Einsparung auftreten, zu verhindern?

Antwort

0

Automatische spart mit dem Image Editor

The Creative SDK Image Editor speichert das bearbeitete Bild, wenn der Benutzer das Bild-Editor wird geschlossen. Es ist nicht möglich, dieses Verhalten zu verhindern.

Das gespeicherte Bild Uri wird an die App-Aktivität in der onActivityResult()-Methode zurückgegeben. Eine grundlegende Demonstration finden Sie unter this sample app on GitHub.

Diktieren, wo das bearbeitete Bild wird

gespeichert

Es ist möglich, zu diktieren, wo das bearbeitete Bild unter Verwendung der withOutput() Methode gespeichert wird, ist es ein File vorbei.

Sie können alle optionalen Methoden unter sehen.

Beachten Sie, dass das Entwicklerportal derzeit angibt, dass Sie eine Uri an übergeben sollten, aber das ist falsch. Sie sollten eine 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(); 
übergeben