少し前に、次のコードを機能させることができました(あなたのようなインターネット上の人々のおかげで、間違いなく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 を保存するように)