Android получает дополнительные функции REQUEST_IMAGE_CAPTURE с Glide
Я пытаюсь использовать библиотеку Glide для управления растровым изображением, снятым камерой.
Вот рабочий код (без Glide)
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK){
try{
Bundle extras = data.getExtras();
Bitmap photo = (Bitmap) extras.get("data");
imageView.setImageBitmap(photo);
}
catch(Exception e){
e.printStackTrace();
}
}
super.onActivityResult(requestCode, resultCode, data);
}
И вот моя попытка с Glide:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK){
try{
Bundle extras = data.getExtras();
Bitmap photo = (Bitmap) extras.get("data");
//imageView.setImageBitmap(photo);
Glide.with(imageView.getContext()).load(extras.get("data")).asBitmap().override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL).fitCenter().into(imageView);
}
catch(Exception e){
e.printStackTrace();
}
}
super.onActivityResult(requestCode, resultCode, data);
}
Мой imageView остается пустым.
1 ответ
Хороший обходной путь с использованием реального изображения:
else if(requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK){
Uri uri = data.getData();
try{
imageView.setImageDrawable(null);
//Bundle extras = data.getExtras();
//Bitmap photo = (Bitmap) data.getExtras().get("data");
//imageView.setImageBitmap(photo);
//InputStream inputStream = getContentResolver().openInputStream(u);
//BitmapFactory.Options options=new BitmapFactory.Options();
//options.inSampleSize=3; //decrease decoded image
//Bitmap bitmap = BitmapFactory.decodeStream(inputStream, null, options);
//imageView.setImageBitmap(bitmap);
Glide.with(imageView.getContext()).load(uri).asBitmap().override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL).fitCenter().into(imageView);
//extras.clear();
}
catch(Exception e){
e.printStackTrace();
}
}