1

エディターの意図がアクティブになるたびに、ここで問題が発生します。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});
    }

上記のコードが実際にその保存を実行している可能性があることに気付きましたが、これは自動生成されたファイルです。保存が行われないようにする方法はありますか?

4

1 に答える 1

0

画像エディターによる自動保存

Creative SDK イメージ エディターは、ユーザーがイメージ エディターを閉じると、編集したイメージを保存します。この動作を防ぐことはできません。

保存された画像Uriは、メソッドでアプリのアクティビティに戻されますonActivityResult()。基本的なデモンストレーションについては、GitHub のこのサンプル アプリを参照してください。

編集した画像の保存場所を指定する

withOutput()メソッドを使用してFile.

オプションのメソッドはすべて、Creative SDK 開発者ポータルの画像エディター ガイドで確認できます。

デベロッパー ポータルでは現在、Uritoを渡す必要があると記載されています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();
于 2016-07-11T14:46:30.907 に答える