Android 调用系统原生相机拍照并储存到指定位置

Android 6.0(API 23以下,不包括23)以下,无动态授权模块,

权限:

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

java代码:


        Intent intent = new Intent();
        intent.setAction("android.media.action.IMAGE_CAPTURE");

		//以下这句可以省略,Android默认返回一个Category的DEFAULT
        intent.addCategory("android.intent.category.DEFAULT");

        //存入图片
        Uri uri = Uri.fromFile(new File("/sdcard/0001.jpg"));
        intent.putExtra(MediaStore.EXTRA_OUTPUT,uri);

        startActivity(intent);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android中,要调用系统相机拍照可以使用Intent,以下是一个简单的示例: ```java private static final int REQUEST_IMAGE_CAPTURE = 1; private String currentPhotoPath; // 调用系统相机拍照 private void dispatchTakePictureIntent() { Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); // 确保有相机应用可以处理该 intent if (takePictureIntent.resolveActivity(getPackageManager()) != null) { // 创建一个文件来保存拍摄的照片 File photoFile = null; try { photoFile = createImageFile(); } catch (IOException ex) { // 错误处理 } if (photoFile != null) { Uri photoURI = FileProvider.getUriForFile(this, "com.example.android.fileprovider", photoFile); takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI); startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE); } } } // 创建图片文件 private File createImageFile() throws IOException { // 创建一个唯一的文件名 String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); String imageFileName = "JPEG_" + timeStamp + "_"; File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES); File image = File.createTempFile( imageFileName, ".jpg", storageDir ); // 保存当前图片路径 currentPhotoPath = image.getAbsolutePath(); return image; } // 处理拍照结果 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { // 图片保存在 currentPhotoPath 中,你可以在这里做你想做的事情 // 例如:将图片路径存储到数据库中,将图片显示在ImageView中等等 } } ``` 在上述代码中,`dispatchTakePictureIntent` 方法创建了一个 `ACTION_IMAGE_CAPTURE` 的 Intent,然后使用 `startActivityForResult` 方法启动系统相机应用。在 `createImageFile` 方法中,我们创建一个唯一的文件名,并将照片文件保存到 `/Pictures` 目录下。当相机应用拍摄完照片后,我们可以在 `onActivityResult` 方法中处理照片结果,照片会保存在 `currentPhotoPath` 变量中,你可以在这里对照片进行处理。 需要注意的是,如果你想把照片保存到指定位置,你需要在创建照片文件时指定文件路径。在示例代码中,我们使用了 `FileProvider` 来获得一个可以共享的 URI,以便将文件路径传递给相机应用。如果你想将照片保存到指定的文件夹中,你需要修改 `createImageFile` 方法中的 `storageDir` 变量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值