查询同一文件夹下的所有文件时,不显示“位图存储文件”



我将位图存储在移动设备的SD卡中,然后我有另一种方法,列出我保存位图的文件夹中存在的所有文件。问题是,当图像被存储时,即使我检查了它们是否真的存在于文件夹中,我的代码从该文件夹列出的图像不返回这些图像,它通常显示他们几次后,我利用应用程序虽然。有人能帮我一下吗?你可以在下面找到我的代码。

用于存储位图

imagesFolder = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "ILoveKitties");
if(!imagesFolder.exists())
    imagesFolder.mkdirs();
int imageNum;
if(imagesFolder.list()==null)
    imageNum = 1;
else
    imageNum = imagesFolder.list().length + 1;
String fileName = "appname_" + String.valueOf(imageNum) + ".jpg";
output = new File(imagesFolder, fileName);
while(output.exists()){
    imageNum++;
    fileName = "appname_" + String.valueOf(imageNum) + ".jpg";
    output = new File(imagesFolder, fileName);
}
OutputStream fOut = new FileOutputStream(output);
merged.compress(Bitmap.CompressFormat.JPEG, 100, fOut);
fOut.flush();
fOut.close();
fOut = null;
saved = true;
savedFilePath = "file://" + output.getCanonicalPath();

这是用于检索文件夹

中的文件列表
boolean isSDPresent = android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
if(isSDPresent) {
    String[] projection = {MediaStore.Images.Media.DATA};
    cursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
            projection, 
            MediaStore.Images.Media.DATA + " like ? ", 
            new String[] {"%APPNAME%"}, 
            null);
    columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    File testFileAvailability;
    for(int i=cursor.getCount()-1; i>=0; i--){
        cursor.moveToPosition(i);
        // get image filename
        testFileAvailability = new File("file://" + cursor.getString(columnIndex));
        if(testFileAvailability.exists()){
            listImagePath.add("file://" + cursor.getString(columnIndex));
        }
    }
}

然后使用路径显示图像

好的,一旦你将文件存储在设备存储中,然后只需触发媒体扫描仪在MediaStore中插入文件条目,然后你的应用程序应该能够获得文件路径。

使用下面的代码触发媒体扫描器:

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));

实际上,您必须触发媒体扫描仪来获取您当前存储的文件条目。Android设备重新启动时。或者你启动任何原生相机或图库应用程序(如果他们实现了)。

相关内容

  • 没有找到相关文章

最新更新