首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用Android上的MediaStore将数据从Camera保存到磁盘?

要在Android上使用MediaStore将数据从Camera保存到磁盘,您需要遵循以下步骤:

  1. 首先,在AndroidManifest.xml文件中添加必要的权限:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CAMERA" />
  2. 在您的Activity或Fragment中,检查并请求必要的权限:private static final int REQUEST_IMAGE_CAPTURE = 1; private static final int REQUEST_STORAGE_PERMISSION = 2; private void dispatchTakePictureIntent() { Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); if (takePictureIntent.resolveActivity(getPackageManager()) != null) { startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE); } } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { if (requestCode == REQUEST_STORAGE_PERMISSION) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { dispatchTakePictureIntent(); } } } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { Bundle extras = data.getExtras(); Bitmap imageBitmap = (Bitmap) extras.get("data"); // 使用imageBitmap进行后续操作 } }
  3. 在onActivityResult方法中,您可以获取到拍摄的照片的Bitmap。您可以使用这个Bitmap进行后续操作,例如保存到磁盘或显示在ImageView中。
  4. 如果您想将照片保存到磁盘,您可以使用以下代码:private void saveImageToDisk(Bitmap imageBitmap) { ByteArrayOutputStream bytes = new ByteArrayOutputStream(); imageBitmap.compress(Bitmap.CompressFormat.JPEG, 100, bytes); String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath() + File.separator + "MyApp"; File dir = new File(path); if (!dir.exists()) { dir.mkdirs(); } String fileName = "IMG_" + System.currentTimeMillis() + ".jpg"; File file = new File(dir, fileName); try { FileOutputStream fo = new FileOutputStream(file); fo.write(bytes.toByteArray()); fo.close(); } catch (IOException e) { e.printStackTrace(); } }

这样,您就可以使用MediaStore将数据从Camera保存到磁盘了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券