在相機
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(沒有這樣的文件或目錄) –