Android从图库或相机显示选项中选择图像

Posted

技术标签:

【中文标题】Android从图库或相机显示选项中选择图像【英文标题】:Android chose image from gallery or camera show option together 【发布时间】:2017-04-27 02:49:53 【问题描述】:

在我的 onClick 方法中,我调用了两个新意图,一个用于使用相机拍照,另一个用于从图库中选择图像。但是,每当我在开始活动之前允许这两个意图时,允许对话的弹出窗口总是相互重叠。

Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePicture, 0);

Intent pickPhoto = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(pickPhoto , 1);

我将首先看到允许从图库中选择图像的选项,然后向下滑动它,然后我会看到允许相机的选项。如何在一个弹出窗口中显示它?

【问题讨论】:

【参考方案1】:

您可以执行以下操作....

private void showPickImageDialog() 
    AlertDialog.Builder builderSingle = new AlertDialog.Builder(MainActivity.this);
    builderSingle.setTitle("Select One Option");

    final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
            MainActivity.this,
            android.R.layout.select_dialog_singlechoice);
    arrayAdapter.add("Gallery");
    arrayAdapter.add("Camera");

    builderSingle.setNegativeButton(
            "cancel",
            new DialogInterface.OnClickListener() 
                @Override
                public void onClick(DialogInterface dialog, int which) 
                    dialog.dismiss();
                
            );

    builderSingle.setAdapter(
            arrayAdapter,
            new DialogInterface.OnClickListener() 
                @Override
                public void onClick(DialogInterface dialog, int which) 
                    switch (which) 
                        case 0:
                            Intent pickPhoto = new Intent(Intent.ACTION_PICK,
                                    android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                            startActivityForResult(pickPhoto, 1);
                            break;

                        case 1:
                            Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                            startActivityForResult(takePicture, 0);
                            break;
                    

                
            );
    builderSingle.show();

希望这对你有用!!

【讨论】:

感谢您的快速回复!解决了我的问题,谢谢 @JerryKo 乐于助人!干杯!

以上是关于Android从图库或相机显示选项中选择图像的主要内容,如果未能解决你的问题,请参考以下文章

从图库上传图像或单击移动相机流星 android 应用程序中的图像

文件上传选项以从相机拍摄图像或从图库中选择不适用于 Mozilla Firefox 中的 Web 应用程序

如何在 Android 7.0 中从相机或图库中选择要裁剪的图像?

Android:如何在设置图像视图时检测从图库中选择的图像方向(纵向或横向)?

从android中的意图选择器中选择选项(相机或画廊)后请求权限

Android - 如何从相机捕获图像或从库中添加