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();
        }
    }
Другие вопросы по тегам