📜  在按钮上打开相机或画廊点击 android - Java (1)

📅  最后修改于: 2023-12-03 15:23:33.198000             🧑  作者: Mango

在按钮上打开相机或画廊点击 Android - Java

在 Android 应用程序中,我们经常需要为用户提供使用相机或图片选择器的选项。这通常涉及到与 Android 的系统服务交互。本文将介绍如何在按钮上点击时打开相机或画廊。

使用相机

要使用相机,我们可以通过使用 Intent 启动一个相机应用。以下是一个使用 Intent 启动相机应用的示例:

private void openCamera() {
    Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    startActivityForResult(cameraIntent, CAMERA_REQUEST_CODE);
}

在上面的示例中,我们首先创建一个 Intent,然后使用 MediaStore.ACTION_IMAGE_CAPTURE 常量设置其操作类型,该常量指示相机应用拍摄照片。接下来,我们使用 startActivityForResult() 方法启动相机应用。此方法的第一个参数是要启动的 Intent,第二个参数是请求代码。您可以使用此代码在 onActivityResult() 方法中标识相机应用的响应。

请注意,此方法只能用于从相机拍摄照片。如果您需要在其他应用程序中选择图片,请查看下一节。

使用图片选择器

要使用图片选择器,我们可以使用 Intent 启动一个图片选择器应用程序。以下是一个使用 Intent 启动图片选择器应用程序的示例:

private void openGallery() {
    Intent galleryIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    startActivityForResult(galleryIntent, GALLERY_REQUEST_CODE);
}

在上面的示例中,我们首先创建一个 Intent,然后设置其操作类型为 Intent.ACTION_PICK,该操作告诉系统我们需要选择媒体文件。接下来,我们使用 MediaStore.Images.Media.EXTERNAL_CONTENT_URI 常量设置要选择的内容类型。此常量表示选择系统媒体库中的图像。

我们使用 startActivityForResult() 方法启动画廊应用程序。此方法的第一个参数是要启动的 Intent,第二个参数是请求代码。您可以使用此代码在 onActivityResult() 方法中标识画廊应用程序的响应。

onActivityResult() 方法

在我们启动相机或画廊时,我们使用了 startActivityForResult() 方法启动活动。此方法启动一个活动并在后台等待其响应。完成后,我们需要实现 onActivityResult() 方法处理结果。

以下是一个具有示例代码片段的 onActivityResult() 方法:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == CAMERA_REQUEST_CODE) {
        if (resultCode == RESULT_OK) {
            Bitmap photo = (Bitmap) data.getExtras().get("data");
            imageView.setImageBitmap(photo);
        }
    } else if (requestCode == GALLERY_REQUEST_CODE) {
        if (resultCode == RESULT_OK) {
            Uri imageUri = data.getData();
            imageView.setImageURI(imageUri);
        }
    }
}

此方法的实现取决于我们使用相机还是画廊选择图片。如果是相机,我们可以通过 data.getExtras().get("data") 获取拍摄的照片作为 Bitmap 类型,然后使用它来设置图片视图。如果是画廊,我们使用 data.getData() 获取选择的图像的 Uri,并使用 setImageURI() 方法将其设置为 ImageView

到这里,我们已经成功地打开了相机或图片选择器。希望这篇文章能够帮助您在 Android 应用程序中实现这些功能。