在android上显示隐藏的用户拍摄的图片

时间:2012-05-24 20:07:51

标签: android

我正在开发一种相机应用程序,我需要它将每张图片保存在我的Android设备上的特定文件夹中:

图片1将进入Project / 1 / Image.jpg

图片2将进入Project / 2 / Image.jpg

依此类推......

以下是保存图像的方法:

    private void SavePicture( byte[] imageData ) 
    {
        File path = new File( Environment.getExternalStoragePublicDirectory ( Environment.DIRECTORY_PICTURES ) + "/Project" );
        boolean success = true;
        if( !path.exists() ) 
        {
            success = path.mkdir();
        }

        if( success ) 
        {
            int iterator = 0;
            do 
            {
                ++iterator;
                path = new File( path + "/"+Integer.toString(iterator) );
            }while( path.exists() );
            success = path.mkdir();
        }

        if(!success) 
        {
            Log.d("ACTIVITY", "failed at creating directory!");
        }

        String filename = "Image.jpg";
        try 
        {
            Uri uriTarget = Uri.fromFile( new File( path, filename ) );
            OutputStream output = getContentResolver().openOutputStream( uriTarget );
            output.write( imageData );
            output.flush();
            output.close();
        }
        catch( FileNotFoundException e ) 
        {
            Log.d( "ACTIVITY", "Save image failed due to FileNotFoundException: " + e );
        }
        catch( IOException e ) 
        {
            Log.d( "ACTIVITY", "Save image failed due to IOException: " + e );
        }
    }

在这段代码中,我从一个循环开始,找到我所在的号码,如果我有文件夹1,2,3,4,我将创建文件夹5.

我的问题如下:当它经过那个循环时,do {...} while(path.exists());找到我之前创建的每个文件夹。但当我在我的画廊看时,我看不到任何图片或文件夹。我也从计算机的文件系统看到了Android设备,但找不到任何文件夹。

我的猜测是该文件夹是隐藏的(这只是一个假设...)

由于

1 个答案:

答案 0 :(得分:2)

您应该设置在清单中写入的权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />