1

少し前に、次のコードを機能させることができました(あなたのようなインターネット上の人々のおかげで、間違いなくAndroidのドキュメントではありません...)。基本的には、ファイル ピック アクティビティ (この場合は画像) を開始してから、画像トリミング アクティビティにジャンプし、トリミングされた画像を提供されたファイル ストリームに保存します。

    File file = new File(saveTo);
    FileOutputStream fs = new FileOutputStream(file);
    fs.close();

    Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);
    intent.setType("image/*");
    intent.putExtra("crop", "true");
    intent.putExtra("aspectX", 1);
    intent.putExtra("aspectY", 1);
    intent.putExtra("outputX", maxImageSize);
    intent.putExtra("outputY", maxImageSize);
    intent.putExtra("scale", "true");
    //intent.putExtra("return-data", false);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
    intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
    intent.putExtra("noFaceDetection", !false);
    intent.putExtra("setWallpaper", false);
    startActivityForResult(intent, CROP_FROM_CAMERA);

まず、これが完全に機能し、このコードに問題がないことを明確にしたいと思います。

上記のコードは、その目的でデータを返しません。これは、"return-data" エクストラが意図的にコメント アウトされているためです。これにより、トリミングされた画像は、デバイス メモリを占有する代わりにオープン ストリームに直接保存され、大きな画像での醜い動作を防ぐことができます。

私が知りたい のは、選択されてトリミングされた元のファイル(作成された file\thumbnail ではない)の URI を取得するにはどうすればよいですか? 作業コードを分解せずに、いくつかのステップでこれを実行しようとする方法はありますか? (最初に画像を選択してからトリミング アクティビティを実行し、その間に元のファイル URI を保存するように)

4

1 に答える 1