このコードを使用してトリミング アクティビティを開始し、トリミングされた画像を onActivityResult のデータとして取得します。したがって、これは正常に機能します。
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setType("image/*");
List<ResolveInfo> list = getPackageManager().queryIntentActivities(
intent, 0);
int size = list.size();
if (size == 0) {
Toast.makeText(this, "Can not find image crop app",
Toast.LENGTH_SHORT).show();
return;
} else {
intent.setData(mImageCaptureUri);
intent.putExtra("outputX", 200);
intent.putExtra("outputY", 200);
intent.putExtra("scale", true);
intent.putExtra("return-data", true);
Intent i = new Intent(intent);
ResolveInfo res = list.get(0);
i.setComponent(new ComponentName(res.activityInfo.packageName,
res.activityInfo.name));
startActivityForResult(i, CROP_FROM_CAMERA);
これは、画像を 200x200 のサイズにトリミングするためのコードです。トリミング アクティビティで選択した縦横比は関係ありません。私の懸念は、200と200の数字を入れて固定するのではなく、アクティビティの長方形で選択したアスペクト比が欲しいということです。
しかし、これらの 2 行をコメントアウトすると、私のプログラムは強制終了します....
写真に配置した長方形の縦横比を維持しながら、トリミング アクティビティで選択した写真の部分に正確にトリミングするためのソリューションはありますか? エクストラとして入れなければならないデータはどれですか? 助けが必要!