Android: обрезать изображение и отображать его в ImageView
Я хочу выбрать файл из галереи, а затем пытаюсь обрезать его, проблема, с которой я сталкиваюсь:
После обрезки изображения и результата деятельности я получаю ошибку, потому что я получаю ноль,
Отрывок активности по результату
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK)
return;
switch (requestCode) {
case PICK_FROM_CAMERA:
/**
* After taking a picture, do the crop
*/
doCrop();
break;
case PICK_FROM_FILE:
/**
* After selecting image from files, save the selected path
*/
Toast.makeText(this,"in gall",Toast.LENGTH_LONG).show();
mImageCaptureUri = data.getData();
Log.e("URI", mImageCaptureUri.toString());
doCrop();
break;
case crop:
Log.e("URI2", mImageCaptureUri.toString());
Bundle extras = data.getExtras();
/**
* After cropping the image, get the bitmap of the cropped image and
* display it on imageview.
*/
Bitmap photo = extras.getParcelable("data");
Log.e("URI9", mImageCaptureUri.toString());
//here i am receiving null idk why.....
mImageView.setImageBitmap(photo);
// File f = new File(mImageCaptureUri.getPath());
/**
* Delete the temporary image
*/
// if (f.exists())
// f.delete();
break;
}
}
Это моя функция Do Crop
private void doCrop() {
Intent intent = new Intent();
// call android default gallery
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
// ******** code for crop image
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 0);
intent.putExtra("aspectY", 0);
intent.putExtra("outputX", 200);
intent.putExtra("outputY", 150);
try {
intent.putExtra("return-data", true);
startActivityForResult(Intent.createChooser(intent,
"Complete action using"), crop);
} catch (ActivityNotFoundException e) {
// Do nothing for now
}
}
}
я объявил урожай как: private static final int crop = 5;
1 ответ
Решение
Опс, я просто пренебрег нулевой проверкой, все в порядке, новый обновленный код, без ошибок код.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK)
return;
switch (requestCode) {
case PICK_FROM_CAMERA:
/**
* After taking a picture, do the crop
*/
doCrop();
break;
case PICK_FROM_FILE:
/**
* After selecting image from files, save the selected path
*/
Toast.makeText(this,"in gall",Toast.LENGTH_LONG).show();
mImageCaptureUri = data.getData();
Log.e("URI", mImageCaptureUri.toString());
doCrop();
break;
case crop:
Log.e("URI2", mImageCaptureUri.toString());
Bundle extras = data.getExtras();
/**
* After cropping the image, get the bitmap of the cropped image and
* display it on imageview.
*/
if(extras!=null)
{
Bitmap photo = extras.getParcelable("data");
Log.e("URI9", mImageCaptureUri.toString());
mImageView.setImageBitmap(photo);
}
// File f = new File(mImageCaptureUri.getPath());
/**
* Delete the temporary image
*/
// if (f.exists())
// f.delete();
break;
}
}