在相机
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File outPutFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "Path of your custom directory);
if (!outPutFile.exists()) {
outPutFile.mkdirs();
}
Uri capturedImageUri = Uri.fromFile(File.createTempFile("Your app directory name" + System.currentTimeMillis(), ".jpg", outPutFile));
Logg.e(getClass().getSimpleName(), "Captured_Pic ===== " + Uri.fromFile(outPutFile));
intent.putExtra(MediaStore.EXTRA_OUTPUT, capturedImageUri);
startActivityForResult(intent, Util.REQUEST_CAMERA);
的点击
在画廊的点击
CropImage.startPickImageActivity(HomeActivity.this);
OnActivityResult
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_CANCELED) {
switch (requestCode) {
case Util.REQUEST_CAMERA: // Camera request
startCropImageActivity(capturedImageUri);
break;
case CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE: // Crop
CropImage.ActivityResult result = CropImage.getActivityResult(data);
try {
if (resultCode == RESULT_OK) {
resultUri = result.getUri();
mProfileView.setImageURI(Uri.parse(resultUri.toString())); // this is my imageview, where I'll set that cropped image Uri.
} else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
Exception error = result.getError();
}
} catch (Exception e) {
e.printStackTrace();
}
break;
case CropImage.PICK_IMAGE_CHOOSER_REQUEST_CODE: // Gallery request
try {
Uri selectedImageUri = CropImage.getPickImageResultUri(this, data);
startCropImageActivity(selectedImageUri);
} catch (Exception e) {
e.printStackTrace();
}
break;
}
}
}
此方法将根据您的要求
private void startCropImageActivity(Uri imageUri) {
CropImage.activity(imageUri)
.setGuidelines(CropImageView.Guidelines.ON)
.setCropShape(CropImageView.CropShape.RECTANGLE)
.setActivityMenuIconColor(ContextCompat.getColor(HomeActivity.this, R.color.app_blue))
.setGuidelinesColor(ContextCompat.getColor(HomeActivity.this, R.color.app_blue))
.setScaleType(CropImageView.ScaleType.FIT_CENTER)
.setFixAspectRatio(true)
.setBorderCornerColor(ContextCompat.getColor(HomeActivity.this, R.color.app_blue))
.setBorderLineColor(ContextCompat.getColor(HomeActivity.this, R.color.app_blue))
.start(this);
}
请参阅此链接设置属性来裁剪图像工具@ Snehal Gongle: - http s://stackoverflow.com/a/41121904/4906130,你会在Util.REQUEST_CROP_IMAGE – Bhavnik
中发现croppedImageUri我实际上使用了这个库,它使我能够裁剪图像并设置图像的高度和宽度compile'com .theartofdev.edmodo:android-image-cropper:2.4。+'所以我不必为GALLERY和Camera提供单独的代码,这个库对我来说确实有效...... –
所以我的大问题是我无法设置这个图像的路径是 file:/data/user/0/com.snake.againimage/cache/cropped560934775.jpg类似这样的东西让我错误为E/Upload:file:/ data/user/0/com.snake.againimage/cache/cropped560934775.jpg:打开失败:ENOENT(没有这样的文件或目录) –