Android从DCIM文件夹获取图像

时间:2019-06-14 21:39:21

标签: android

我正在构建画廊应用程序。我在代码中获得了图片中的图片路径,就像在图片中一样。在日志猫中,我可以看到I/DCIM PATH: /storage/emulated/0/DCIM/Camera的消息,并且此文件夹中有3张图片。但是,代码未列出其中的文件,并且显示错误Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference.,这是什么问题?还有库从存储中检索图像吗?

    private void getImagesFromDCIM() {
    pDialog.setMessage("Fetching images from DCIM folder...");
    pDialog.show();

    File dcimPath = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM) + "/Camera");
    if (dcimPath.exists()) {
        Log.i("DCIM PATH", dcimPath.toString());
        pDialog.hide();
        Log.i("DCIM PATH", dcimPath.listFiles().toString());
        File[] files = dcimPath.listFiles();

        for (int i = 0; i < files.length; i++) {
            Image image = new Image(files[i].getName(), files[i].toString());
        }
        mAdapter.notifyDataSetChanged();
    } else {
        pDialog.hide();
    }
}

enter image description here

2 个答案:

答案 0 :(得分:0)

我想我发现了问题所在。

仅致电listFiles()一次!

答案 1 :(得分:0)

我解决了我的问题,代码正常工作。我只需通过Settings > Apps > "MyApplication" > Permissions > Storage授予我的申请许可,问题就解决了。