【问题标题】:Insert image from gallery to an array将图库中的图像插入数组
【发布时间】:2021-07-06 12:25:24
【问题描述】:

我正在尝试将我画廊中的 3 张图片从另一个活动插入到 ArrayList 用于滑块。

int[] images = {R.drawable.ic_baseline_event_24,R.drawable.ic_baseline_event_24,R.drawable.ic_baseline_event_24};

我想将R.drawable 替换为R.id.image,但找不到任何解决方案。

获取图片的代码:

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);   
intent.setType("image/*"); 
startActivityForResult(Intent.createChooser(intent,"Select image"),1);

【问题讨论】:

  • 我有一个疑问,当您从图库中获取或选择图片时,代码在哪里?
  • 意图意图=新意图(意图.ACTION_GET_CONTENT); intent.setType("图片/*"); startActivityForResult(Intent.createChooser(intent,"选择图片"),1);
  • 我是 Android Studio 的新手,正在探索新事物。
  • 添加 R.id.image 会将图像的 id 添加到数组中。即 它不会将图像添加到数组中。
  • 有什么办法可以将图片添加到他的数组中

标签: android arrays imageview


【解决方案1】:

使用这段代码从手机中选择多张图片

       Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
                intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
                intent.setType("image/*");
                intent.addCategory(Intent.CATEGORY_OPENABLE);
                startActivityForResult(intent, PICK_IMAGE_MULTIPLE);

现在,如果您 100% 确定用户只会选择多张图片,则无需进行检查,但以防万一用户只选择一张图片,这样做很好。

如果用户选择了多个图像,则在 onActivityResult 内部 data.getData() 将返回 null 否则它将包含单个图像的 Uri。

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

        if (requestCode == PICK_IMAGE_MULTIPLE && resultCode == RESULT_OK) {

            if (data.getData() == null) {
                //user selected multiple images
                int i = data.getClipData().getItemCount();
                int j = 0;
                Uri[] imageUri = new Uri[i];
                Bitmap[] bitmap = new Bitmap[i]
                while (j < i) {
                    imageUri[j] = data.getClipData().getItemAt(j).getUri();
                    bitmap[j] = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri[i]);
                    j++;

               }
            }
            else
            {
            //User only selected one image
            }
        }
    }

使用此代码,您将拥有一个位图数组。

注意:您可能需要用 try catch 包围位图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    相关资源
    最近更新 更多