【问题标题】:Android: what is the default location for storing images?Android:存储图像的默认位置是什么?
【发布时间】:2011-11-25 11:07:33
【问题描述】:

我正在编写一个从数码相机下载照片的应用程序。将它们保存到什么地方最合适?必须是外部存储,因为需要千兆字节的图像。

【问题讨论】:

    标签: android storage


    【解决方案1】:

    保存应该共享的文件

    如果您要保存并非特定于您的应用程序且在卸载应用程序时不应删除的文件,请将它们保存到外部存储上的公共目录之一。这些目录位于外部存储的根目录,例如 Music/、Pictures/、Ringtones/ 等。

    在 API 级别 8 或更高版本中,使用 getExternalStoragePublicDirectory(), 将您想要的公共目录类型传递给它,例如 DIRECTORY_MUSIC、DIRECTORY_PICTURES、DIRECTORY_RINGTONES 或其他。 如有必要,此方法将创建适当的目录。 如果您使用 API 级别 7 或更低,请使用 getExternalStorageDirectory() 打开代表根的文件 的外部存储,然后将您的共享文件保存在其中一个 以下目录:

    音乐/ - 媒体扫描仪将此处找到的所有媒体归类为用户音乐。
    Podcasts/ - 媒体扫描仪将此处找到的所有媒体分类为 播客。
    铃声/ - 媒体扫描仪将此处找到的所有媒体分类为 铃声。
    警报/ - 媒体扫描仪将此处找到的所有媒体分类为 警报声。
    Notifications/ - 媒体扫描仪对所有媒体进行分类 在此处作为通知声音找到。
    图片/ - 所有照片(不包括 用相机拍摄的)。
    电影/ - 所有电影(不包括那些 用摄像机拍摄的)。
    下载/ - 其他下载。

    filesExternal

    【讨论】:

      【解决方案2】:

      如果您希望它们可以被其他应用程序访问,只需将它们放在带有相机原始文件夹名称的DCIM文件夹中,(android是100ANDROID,其他相机有其他)。与其他应用程序一样,用户希望将图片存储在那里。

      【讨论】:

        【解决方案3】:

        外部存储是存储图像的最佳位置,默认位置是使用获取它

        Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
        

        如果你想在默认图片目录中创建一个文件夹,然后使用下面 示例代码:

        File storageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
                        + "/Your_folder_name");
        

        这是方法,这是我将位图图像保存到默认图片目录的方式:

        private String saveImage(Bitmap image) {
                String savedImagePath = null;
        
                Date d = new Date();
                CharSequence s = DateFormat.format("MM-dd-yy hh-mm-ss", d.getTime());
                String imageFileName = "IMG" + s + count + ".jpg";
                File storageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
                        + "/Your_folder_name");
                boolean success = true;
                if (!storageDir.exists()) {
                    success = storageDir.mkdirs();
                }
                if (success) {
                    File imageFile = new File(storageDir, imageFileName);
                    savedImagePath = imageFile.getAbsolutePath();
                    try {
                        OutputStream fOut = new FileOutputStream(imageFile);
                        image.compress(Bitmap.CompressFormat.JPEG, 100, fOut);
                        fOut.close();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
        
                    // Add the image to the system gallery
                    //galleryAddPic(savedImagePath);
                    //Toast.makeText(mContext, "IMAGE SAVED", Toast.LENGTH_LONG).show();
                }
                return savedImagePath;
            }
        

        【讨论】:

          【解决方案4】:

          外部存储,因为您需要大量空间。

          【讨论】:

          • 有,但是有没有标准的图片存放文件夹?
          • 如果没有外部存储器,如果内部存储器足够大,如何在代码中检测到这一点,我读过一次,如果你在路径的乞求处使用/Android,它将保存在对的地方,你能给我解释一下吗?
          【解决方案5】:

          Here is an example from Google。请注意,您必须根据描述在AndroidManifest.xmlres/xml/file_paths.xml 中定义<provider>。但是,要使用getExternalStoragePublicDirectory(),我必须在file_paths.xml 文件中设置path="."..

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-07-16
            • 2012-08-01
            • 2013-09-21
            • 2016-05-02
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多