Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从库中获取多个图像_Android_Android Gallery - Fatal编程技术网

Android 从库中获取多个图像

Android 从库中获取多个图像,android,android-gallery,Android,Android Gallery,现在我有一个图像视图。单击imageview,我可以获得选择画廊/相机意图的选项。选择所需的意图和所需的图片,我可以在imageview中获得图像。这对于单个图像很好 如何获取多张图片。我指的是imageview[]。这张图片上有代码吗?使用EXTRA\u ALLOW\u MULTIPLE启动意图 Intent intent = new Intent( ); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT

现在我有一个图像视图。单击imageview,我可以获得选择画廊/相机意图的选项。选择所需的意图和所需的图片,我可以在imageview中获得图像。这对于单个图像很好


如何获取多张图片。我指的是imageview[]。这张图片上有代码吗?

使用
EXTRA\u ALLOW\u MULTIPLE启动意图

Intent intent = new Intent( );
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
startActivityForResult(Intent.createChooser(intent,
"select multiple images"), PICK_IMAGE_MULTIPLE);
接受方

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if(resultCode == Activity.RESULT_OK){
     if(requestCode == PICK_IMAGE_MULTIPLE){
            String[] imagesPath = data.getStringExtra("data").split("\\|");
    }
        }
    }

感谢您的回复,但这是我的代码。现在请让我知道如何在多个ImageView中显示多个图像。如果需要像gridview这样的占位符,也请让我知道

                    ImageView image_view = new ImageView(this);
                image_view.setId(field_id);
                    Uri selectedImage = Uri.parse(field_val);
                    String[] filePath = { MediaStore.Images.Media.DATA };
                    String picturePath;
                    Cursor c = getContentResolver().query(selectedImage,
                            filePath, null, null, null);
                    c.moveToFirst();
                    if(c.moveToFirst() && c.getCount() >= 1)
                    {
                    int columnIndex = c.getColumnIndex(filePath[0]);
                    picturePath = c.getString(columnIndex);
                    c.close();
                    BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
                    bitmapOptions.inSampleSize = 20;
                    Bitmap thumbnail = (BitmapFactory.decodeFile(
                            picturePath, bitmapOptions));
                    image_view.setImageBitmap(thumbnail);
                    image_view.setTag(selectedImage);
                    }

                    else {
                    image_view.setImageDrawable(getResources().getDrawable(
                            R.drawable.camera_launcher));

                }
                image_view.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        getImage();
                    }
                });

    private void getImage() {

    final CharSequence[] options = { "Take Photo", "Choose from Gallery",
    "Cancel" };

    AlertDialog.Builder builder = new AlertDialog.Builder(
            this);
    builder.setTitle("Add Photo!");
    builder.setItems(options, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int item) {
            if (options[item].equals("Take Photo")) {
                Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                startActivityForResult(intent, 1);
            } else if (options[item].equals("Choose from Gallery")) {
                Intent intent = new Intent(Intent.ACTION_PICK,
                        MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                startActivityForResult(intent, 2);

            } else if (options[item].equals("Cancel")) {
                dialog.dismiss();
            }
        }
    });
    builder.show();
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
        if (requestCode == 1) {
            Bundle extras = data.getExtras();
            try {
                ((ImageView) findViewById(R.id.imageid)).setImageBitmap((Bitmap) extras
                                .get("data"));
                ((ImageView) findViewById(R.id.imageid))).setTag(R.string.imgtag,
                                data.getDataString());

            } catch (Exception e) {
                e.printStackTrace();
            }
        } else if (requestCode == 2) {

            Uri selectedImage = data.getData();
            String[] filePath = { MediaStore.Images.Media.DATA };
            String picturePath;
            Cursor c = getContentResolver().query(selectedImage, filePath,
                    null, null, null);
            c.moveToFirst();
            int columnIndex = c.getColumnIndex(filePath[0]);
            picturePath = c.getString(columnIndex);
            c.close();
            BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
            bitmapOptions.inSampleSize = 20;
            Bitmap thumbnail = (BitmapFactory.decodeFile(picturePath,
                    bitmapOptions));
            ((ImageView) findViewById(R.id.imageid))).setImageBitmap(thumbnail);
            ((ImageView) findViewById(R.id.imageid))).setTag(R.string.imgtag,
                            selectedImage.toString());

        }
    }
}

Android onActivityResult返回位图,因此创建位图数组。我不需要创建图像数组。位图bp=(位图)数据。getExtras().get(“数据”);如果要放大n个图像,或者换句话说,使用gridview动态添加图像。感谢您的回复,但这是我的代码。现在请告诉我如何在多个ImageView中显示多个图像。另外,请告诉我是否需要像gridview这样的占位符。我已经在上面的邮件中添加了我的代码。您现在可以提出建议吗?我想也是这样额外的允许倍数适用于android:minSdkVersion=18及以上版本,但不得低于该值。