Android从内部存储内存中读取Jpeg

时间:2013-06-07 10:40:49

标签: android android-memory

我将位图图像保存到android内部存储中。现在我想要检索这个/myphoto.jpg图像并使用shareIntent共享它。我如何从内部存储器中读取myphoto.jpg。理想情况下,我希望得到一个文件路径。

    ByteArrayOutputStream outputBuffer = new ByteArrayOutputStream();
    bm.compress(Bitmap.CompressFormat.JPEG, 100, outputBuffer);
    byte[] byteImage1=outputBuffer.toByteArray();


    //save file to internal storage
    FileOutputStream outputStream;

    try {
      outputStream = context.openFileOutput("myphoto.jpg", Context.MODE_PRIVATE);
      outputStream.write(byteImage1);
      outputStream.close();
    } catch (Exception e) {
      e.printStackTrace();
    }

1 个答案:

答案 0 :(得分:1)

您可以使用以下代码获取SD卡中的所有图片:

FileFilter filterForImageFolders = new FileFilter() 
    {            
        public boolean accept(File folder) 
        { 
            try 
            { 
                //Checking only directories, since we are checking for files within 
                //a directory 
                if(folder.isDirectory()) 
                { 
                    File[] listOfFiles = folder.listFiles(); 

                    if (listOfFiles == null) return false; 

                    //For each file in the directory... 
                    for (File file : listOfFiles) 
                    {                            
                        //Check if the extension is one of the supported filetypes                           
                        //imageExtensions is a String[] containing image filetypes (e.g. "png")
                        for (String ext : imageExtensions) 
                        { 
                            if (file.getName().endsWith("." + ext)) return true; 
                        } 
                    }                        
                } 
                return false; 
            } 
            catch (SecurityException e) 
            { 
                Log.v("debug", "Access Denied"); 
                return false; 
            } 
        } 
    };

现在使用这样的方法:

File extStore = Environment.getExternalStorageDirectory();
File[] imageDirs = extStore.listFiles(filterForImageFolders);