【问题标题】:Android chose image from gallery or camera show option togetherAndroid从图库或相机显示选项中选择图像
【发布时间】: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);

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

【问题讨论】:

    标签: android android-camera android-gallery


    【解决方案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 乐于助人!干杯!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多