0

我正在尝试检索int我的设备在其图库中有多少图像的值。稍后我将使用它来循环并抓取图像。

private class ClickListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(intent, CAMERA);
        }

    }

    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == CAMERA) {
            if (resultCode == Activity.RESULT_OK) {
                Bundle extras = data.getExtras();
                bmp = (Bitmap) extras.get("data");
                MediaStore.Images.Media.insertImage(getContentResolver(), bmp,
                        "picture", "a picture");
                Log.v("HEY", "Your image should be in the gallery now");                
                Log.v("IMAGES", "Number of Images: " + getImageCount());
            } else if (resultCode == Activity.RESULT_CANCELED) {
                Log.v("CANCELED", "The user has canceled the activity");
            }
        }

    }

    public int getImageCount() {
        File dir = new File(Environment.getExternalStorageDirectory() + "/Camera");
        File[] files = dir.listFiles();
        int numberOfImages = files.length;
        return numberOfImages;
    }

但是 logcat 正在发布这个

06-19 18:24:41.380: V/HEY(5367): Your image should be in the gallery now
06-19 18:24:41.380: V/IMAGES(5367): Number of Images: 1

因此,当实际图像数量为 14 时,它告诉我有 1 张图像。我一定遗漏了一些简单的东西,但我看不到它。任何帮助表示赞赏。

4

1 回答 1

1

明白了,@FoamyGuy 的评论引发了一个想法。如果相机在我的 DCIM 内,那么我需要更改它

File dir = new File(Environment.getExternalStorageDirectory() + "/Camera");

对此

File dir = new File(Environment.getExternalStorageDirectory() + "/DCIM/Camera");

这似乎很愚蠢,因为我以前从未指定过 DCIM 文件夹。就是这样,我希望这对其他人有帮助。

于 2013-06-19T23:53:25.587 回答