Android开发:指定路径保存拍照图片到SD卡

5星 · 超过95%的资源 需积分: 47 62 下载量 196 浏览量 更新于2024-09-13 收藏 1KB TXT 举报
"该代码段展示了如何在Android应用中将拍照后的图片保存到SD卡的指定路径,并命名为'headImage.jpg'。" 在Android开发中,处理图片存储是一个常见的任务,尤其是在用户拍摄照片后需要保存到设备上。这段代码提供了一个实现这个功能的例子。主要涉及的知识点包括: 1. **环境检查**: 首先,通过`Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)`来检查SD卡是否已挂载并可用。这是必要的,因为如果没有可用的外部存储空间,保存图片的操作将无法进行。 2. **定义图片保存路径**: `sdCardDir = Environment.getExternalStorageDirectory() + "/locationTrackingImage/"`,这行代码定义了图片保存的目录。在这个例子中,图片会被保存到SD卡根目录下的`locationTrackingImage`文件夹。 3. **创建文件夹**: 使用`new File(sdCardDir)`创建一个File对象,然后调用`mkdirs()`方法确保目录存在。如果不存在,它会创建所有必要的目录层级。 4. **定义图片文件**: `File file = new File(sdCardDir, "headImage.jpg");`创建一个表示图片文件的File对象。如果文件已经存在,`file.exists()`会返回true,此时调用`delete()`删除旧文件,确保新拍的照片不会覆盖已有图片。 5. **写入图片**: 使用`try-catch`语句块来处理可能出现的异常。首先,通过`FileOutputStream out = new FileOutputStream(file);`创建一个输出流用于写入文件。接着,调用`photo.compress(Bitmap.CompressFormat.JPEG, 100, out);`将Bitmap类型的图片以JPEG格式压缩并写入到输出流,其中100代表质量,值越小,压缩程度越高,质量越低。最后,调用`out.flush()`和`out.close()`确保数据被完全写入并关闭流。 6. **保存图片路径**: `path = sdCardDir + "/headImage.jpg";`这行代码将图片的完整路径保存在一个字符串变量中,方便后续使用。 总结来说,这段代码提供了一个完整的Android应用中保存图片到SD卡的流程,包括检查存储状态、创建保存路径、删除旧文件、写入新图片以及获取图片的保存路径。在实际开发中,根据具体需求,可能还需要添加权限处理(如在Android 6.0及以上版本请求WRITE_EXTERNAL_STORAGE权限),以及错误处理和日志记录等。