2013-03-28 6 views
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); 

Как объединить эти две задачи, поэтому они происходят один за другим? Должен ли я иметь 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(); 
    } 

ответ

1

Создайте новую константу под названием CAMERA_CROP.

Когда вы начинаете операцию после фотографирования, отправьте код запроса CAMERA_CROP.

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

Когда вы возвращаетесь из урожая, обрабатывайте код запроса.

if (requestCode == CAMERA_CROP && resultCode == Activity.RESULT_OK) { 
... 
} 
+0

Выяснено, что касается моей последующей проблемы. Спасибо, отмечено правильно. – KickingLettuce

Смежные вопросы