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 🙂