:
, ,
Intent intentCamera = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intentCamera, Constants.CAMERA_REQUEST_CODE);
onActivityResult() , URL- .
:
private void callCrop(Uri sourceImage) {
CropImageIntentBuilder cropImage = new CropImageIntentBuilder(200, 200, getURL());
cropImage.setOutlineColor(Color.WHITE);
cropImage.setSourceImage(sourceImage);
cropImage.setDoFaceDetection(false);
startActivityForResult(cropImage.getIntent(this), Constants.CROP_REQUEST_CODE);
}
onActivityResult().
CropImageIntentBuilder github. ,
https://github.com/lvillani/android-cropimage/blob/master/CropImage/src/main/java/com/android/camera/CropImageIntentBuilder.java
:
, , , , Activity.
camerBtn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Intent intentCamera = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intentCamera, Constants.CAMERA_REQUEST_CODE);
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Bitmap saveBitmap = null;
if (resultCode == RESULT_OK) {
if (requestCode == Constants.CAMERA_REQUEST_CODE) {
if (data != null) {
Uri currentImageUri = data.getData();
if (currentImageUri != null) {
Bitmap currentBitmap = uriToBitmap(currentImageUri);
Bitmap rotatedBitmap = rotateImage(currentBitmap, 90);
saveImageToFile(rotatedBitmap);
callCrop(getURL());
}
} else {
return;
}
} else if (requestCode == Constants.CROP_REQUEST_CODE) {
saveBitmap = BitmapFactory.decodeFile(getFile().getAbsolutePath());
String convertedImage = Utils.bitMapToString(saveBitmap);
}
super.onActivityResult(requestCode, resultCode, data);
}
private Bitmap uriToBitmap(Uri selectedFileUri) {
Bitmap image = null;
try {
ParcelFileDescriptor parcelFileDescriptor =
getContentResolver().openFileDescriptor(selectedFileUri, "r");
FileDescriptor fileDescriptor = parcelFileDescriptor.getFileDescriptor();
image = BitmapFactory.decodeFileDescriptor(fileDescriptor);
parcelFileDescriptor.close();
} catch (IOException e) {
e.printStackTrace();
}
return image;
}
private static Bitmap rotateImage(Bitmap img, int degree) {
Matrix matrix = new Matrix();
matrix.postRotate(degree);
Bitmap rotatedImg = Bitmap.createBitmap(img, 0, 0, img.getWidth(), img.getHeight(), matrix, true);
img.recycle();
return rotatedImg;
}
, .