【问题标题】:Android get REQUEST_IMAGE_CAPTURE extras with GlideAndroid 使用 Glide 获得 REQUEST_IMAGE_CAPTURE 附加功能
【发布时间】:2017-07-28 08:51:42
【问题描述】:

我正在尝试使用 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 仍然是空的。

【问题讨论】:

  • 这里为什么需要 Glide?你有Bitmap。您不需要在后台加载Bitmap
  • 我想防止内存使用不当。我对 Glide 使用的理解几乎为零。抱歉,我真的很害怕 Java.OutOfMemory 异常,我试图尽可能多地应用 Glide 库。
  • @CommonsWare 顺便说一句,对不起我的坚持,有办法吗?
  • 有什么办法吗?您的第一个代码 sn-p 与您从第三方相机应用程序获取照片一样节省内存。
  • @CommonsWare 使用 Glide 库分配 ImageView 位图,而不是创建一个位图对象。

标签: android bitmap android-camera android-glide


【解决方案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();
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-18
    • 2019-08-20
    相关资源
    最近更新 更多