Seletor de fotos Android com corte

Inicie o seletor de fotos assim:

Intent intent = new Intent(Intent.ACTION_PICK, 
android
.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);

intent
.setType("image/*");
intent
.putExtra("crop", "true");
intent
.putExtra("scale", true);
intent
.putExtra("outputX", PHOTO_WIDTH);
intent
.putExtra("outputY", PHOTO_HEIGHT);
intent
.putExtra("aspectX", 1);
intent
.putExtra("aspectY", 1);
intent
.putExtra("return-data", true);
startActivityForResult
(intent, 1);

PHOTO WIDTH e PHOTO HEIGHT são a largura e a altura que a foto de saída terá. O Android fará todo o redimensionamento para você.
Você também pode definir a proporção da imagem, neste exemplo, é 1: 1.

Depois que a foto for escolhida e cortada, o usuário retornará ao seu aplicativo:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK) {
return;
}

if (requestCode == 1) {
final Bundle extras = data.getExtras();

if (extras != null) {
Bitmap photo = extras.getParcelable("data");
}
}
}

E agora você tem sua foto como bitmap 🙂