如何在 Android Studio 的 Compressor 库中填充“this”上下文

How to Fill the 'this' Context in Compressor Library in Android Studio

提问人:Danny Salim 提问时间:5/10/2019 最后编辑:DhaiyurDanny Salim 更新时间:5/10/2019 访问量:796

问:

我正在尝试编写一个代码来使用 Compressor 库压缩图像:https://github.com/zetbaitsu/Compressor 并使用以下行进行压缩:

compressedImageFile = new Compressor(this).compressToFile(actualImageFile);

但是,在构建我的应用程序时,我收到了以下错误消息:

错误:不兼容的类型:无法将 PictureOneFragment 转换为上下文

我将“this”更改为getActivity()。我收到另一条错误消息:

error:未报告的异常 IOException;必须被抓住或宣布被扔掉

public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REQUEST_PICTURE_CAPTURE && resultCode == Activity.RESULT_OK) {

            File imgFile = new  File(pictureFilePath);

            if(imgFile.exists()) {
                File compressedImageFile = new Compressor(getActivity()).compressToFile(imgFile);

                try {

                    mPage.getData().putString(PictureOnePage.PICTURE_NAME + "_" + mPage.getTitle().trim(), pictureFilePath);
                    mPage.notifyDataChanged();

                    bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), Uri.fromFile(imgFile));
                    mImgView.setImageBitmap(bitmap);

                } catch (IOException e) {
                    Log.i("eProject : ", e.toString());
                    e.printStackTrace();
                }

            }

        }
    }

Compressor 资源库的正确上下文是什么?

android this file-比较

评论


答:

0赞 Dharmendra Jagodana 5/10/2019 #1

只是几乎没有变化,您必须创建文件实例和裁剪图像实例

尝试{
.... } catch(IOException e){ ... }
,因为两者都可以在运行时抛出 IOException。

0赞 Gourav 5/10/2019 #2

只需插队:

File compressedImageFile = new Compressor(getActivity()).compressToFile(imgFile);

并将其放在其下方的 try 块中。
就这么简单,因为它也可能导致 .
IOException