如何在Android中保存图像?

如何在Android中保存图像?,android,camera,save,Android,Camera,Save,我对Android编程非常陌生,我想知道如何让应用程序拍照并将图像保存到设备的内部存储器,而不是SD卡,因为不是每个人都会有SD卡。你可以尝试将其保存为sqlite blob。本线程介绍如何进行存储。说“不是每个人都有外部存储”是一个不好的借口:你应该处理这两种情况。相反,如果希望将其实现为文件(这是一种非常好的实现方法),可以使用Environment.getExternalStorageDir()调用查找外部存储目录,以确定存储文件的合适目录。阅读API文档并注意以下注意事项: 注意:这里的

我对Android编程非常陌生,我想知道如何让应用程序拍照并将图像保存到设备的内部存储器,而不是SD卡,因为不是每个人都会有SD卡。

你可以尝试将其保存为sqlite blob。本线程介绍如何进行存储。说“不是每个人都有外部存储”是一个不好的借口:你应该处理这两种情况。相反,如果希望将其实现为文件(这是一种非常好的实现方法),可以使用Environment.getExternalStorageDir()调用查找外部存储目录,以确定存储文件的合适目录。阅读API文档并注意以下注意事项:

注意:这里的“外部”一词不要混淆。此目录最好被视为媒体/共享存储。它是一个文件系统,可以保存相对大量的数据,并在所有应用程序之间共享(不强制执行权限)。传统上,这是一个SD卡,但它也可以作为设备中的内置存储器来实现,该设备不同于受保护的内部存储器,并且可以作为文件系统安装在计算机上


也许是这样的

 Bitmap largeBitmap ;  // save your Bitmap from data[]
 FileOutputStream fileOutputStream = null;
 BufferedOutputStream bos = null;
 int quality = 100;

 String filePath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + File.separator + "myImage.jpg"

 File mediaFile = new File(filePath);

 try {

      fileOutputStream = new FileOutputStream(pictureFile);
      bos = new BufferedOutputStream(fileOutputStream);
      bitmap.compress(CompressFormat.JPEG, quality, bos);

      return pictureFile;
 } finally {
      if (bos != null) {
      try {
           bos.close();
      } catch (IOException e) {
      // ignore close error
      }
 }

是的,您可以尝试在sqlite blob字段中保存图像。这只是一种java方式:让全世界等待:)

将所有文件、缓存等存储到外部存储的
/Android/data//files/
目录中是一种很好的做法。外部存储不是唯一的SD卡,您可以通过Environment.getExternalStorageDirectory()和Environment.getExternalStorageState()调用()获取外部存储路径和状态。如果您使用的是API 8或更高版本,则可以使用Context.getExternalFilesDir()


如果要获取用户的仇恨射线,可以尝试将文件和文件夹存储在外部存储器的根目录中。

picturefile变量来自何处?