【问题标题】:Open image chooser with camera option使用相机选项打开图像选择器
【发布时间】:2019-08-22 12:03:22
【问题描述】:

如何打开图像选择器并同时显示拍照选项?

这是我的代码:

private void openFileChooser() {
    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(intent, PICK_IMAGE_REQUEST);
}

问题是没有打开相机选项。我该如何添加? 这就是我得到的:

【问题讨论】:

  • 您可以创建一个自定义警报对话框,然后从那里选择您的选项。

标签: java android android-camera filechooser


【解决方案1】:

您可以使用this 库或显示带有两个按钮的正常警报对话框,一个用于图库,一个用于相机。

有一个类似的问题:Dialog to pick image from gallery or from camera

【讨论】:

  • 不幸的是,该库已弃用,它说要使用 Google API CameraX,这是什么意思 - 我们应该做什么?
【解决方案2】:

您必须指定通过意图调用选择器/应用程序的操作。而且由于从图库中选择图像和使用相机拍摄新图像的操作不同,我认为选择器不会同时选择上传图像和拍摄新图像同时。作为参考,您可以在 facebook 或 whatsaapp 中查看个人资料图片更改程序。单击要更改的图像时,将显示一个自定义对话框,其中包含上传图像、拍摄新图像或从先前上传的图像中选择的选项。根据用户选择的应用程序将用户导航到特定应用程序(相机/图库等)

您可以首先创建一个自定义对话框(或基于您的应用程序设计的布局),其中包含两个选项

  1. 拍摄一张新图片。
  2. 从图库上传图片。

根据用户单击的内容执行代码以将用户导航到图库或相机应用程序。如果用户点击从图库中上传图片,则执行上述代码,如果用户点击拍摄新图片,则执行打开相机的代码。

private void takeNewImage() {
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    startActivityForResult(takePictureIntent,CAMERA_INTENT_REQ_CODE);
}

【讨论】:

  • 这很好,但为了兼容性,使用另一个库是一个更好的主意。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-22
  • 1970-01-01
  • 1970-01-01
  • 2015-07-11
  • 1970-01-01
  • 2017-04-27
  • 1970-01-01
相关资源
最近更新 更多