2

カメラで写真を撮れるようになりたいです。私はこのようにそれを行い、それは動作します:

 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
 intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
 startActivityForResult(intent, CAMERA_REQUEST);

これが成功したら、ユーザーがすぐに画像を表示してトリミングできるようにしたいと考えています。

私はこのようにすることができます:

        Intent cropIntent = new Intent("com.android.camera.action.CROP");
        cropIntent.setDataAndType(Uri.fromFile(new File(file.toString())), "image/*");
        cropIntent.putExtra("crop", "true");
        cropIntent.putExtra("aspectX", 1);
        cropIntent.putExtra("aspectY", 1);
        cropIntent.putExtra("outputX", 256);
        cropIntent.putExtra("outputY", 256);
        cropIntent.putExtra("return-data", true);
        startActivityForResult(cropIntent, CAMERA_REQUEST);

これら 2 つのタスクをマージして、1 つずつ実行するにはどうすればよいですか? TWO が必要startActivityForResultですか? 合併するべきですか?それとも、クロッピング ginfo は法線内にある必要がありますか?

    getActivity();
    if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {


                    // Cropping code here? another intent?

        iPP.setImageBitmap(BitmapFactory.decodeFile(file.toString()));
        imagePath = file.toString();
        scaleImage();
        new UploadImage().execute();
    }
4

1 に答える 1

1

CAMERA_CROP という新しい定数を作成します。

写真を撮った後、アクティビティを開始するときに、CAMERA_CROP リクエスト コードを送信します。

if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {
    ...
    startActivityForResult(cropIntent, CAMERA_CROP);
}

Crop アクティビティから戻ったら、リクエスト コードを処理します。

if (requestCode == CAMERA_CROP && resultCode == Activity.RESULT_OK) {
...
}
于 2013-03-28T18:02:56.670 に答える