来自gallery Android的最大图像选择限制

来自gallery Android的最大图像选择限制,android,android-intent,android-gallery,Android,Android Intent,Android Gallery,我正在尝试从应用程序内部获取Gallery内置应用程序中图像的Uri 所以,我使用了下面的意图,但它选择了更多的图像 我想设定限制。少于3 @Override public void onClick(View v) { Intent intent = new Intent( ); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); intent.putExtra(Inten

我正在尝试从应用程序内部获取Gallery内置应用程序中图像的Uri

所以,我使用了下面的意图,但它选择了更多的图像

我想设定限制。少于3

@Override
public void onClick(View v) {
    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 images"), PICK_IMAGE_MULTIPLE);
}
我该如何解决这个问题


您有什么建议吗?

不幸的是,正如所述,这是不可能的

这是一个布尔额外值;默认值为false。如果为true,则允许实现向用户提供一个UI,用户可以在其中选择多个项目,这些项目都返回给调用者


您必须手动检查返回的数据是否超过3项,如果超过3项,请显示a并让他们重试。

如Daniel所述,不可能有意向。额外允许多个。不过,另一种选择是使用MultipleImageSelect库。不仅可以选择多个图像,还可以对用户选择的图像设置限制

看看这张照片或一张照片

步骤: 步骤1: 将MultipleImageSelect库与jitpack.io一起添加到build.gradle中,如下所示:

repositories {
  maven {
    url "https://jitpack.io"
  }
}

dependencies {
  implementation 'com.github.darsh2:MultipleImageSelect:v0.0.4'
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == Constants.REQUEST_CODE && resultCode == RESULT_OK && data !=null) {
        ArrayList<Image> images =data.getParcelableArrayListExtra(Constants.INTENT_EXTRA_IMAGES);
        imagePathList.clear();
       StringBuffer stringBuffer = new StringBuffer();
       
       //loop to retrieve the paths of each image and display to TextView
       for (int i = 0; i < images.size(); i++) {
            stringBuffer.append(images.get(i).path + "\n");
       }
        textView.setText(stringBuffer.toString());
    }
}
步骤2: 在项目的AndroidManifest.xml中,在应用程序节点下添加以下内容:

<activity
  android:name="com.darsh.multipleimageselect.activities.AlbumSelectActivity"
  android:theme="@style/MultipleImageSelectTheme">
  <intent-filter>
     <category android:name="android.intent.category.DEFAULT" />
  </intent-filter>
</activity>
步骤4: 并重写ActivityResult,如下所示:

repositories {
  maven {
    url "https://jitpack.io"
  }
}

dependencies {
  implementation 'com.github.darsh2:MultipleImageSelect:v0.0.4'
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == Constants.REQUEST_CODE && resultCode == RESULT_OK && data !=null) {
        ArrayList<Image> images =data.getParcelableArrayListExtra(Constants.INTENT_EXTRA_IMAGES);
        imagePathList.clear();
       StringBuffer stringBuffer = new StringBuffer();
       
       //loop to retrieve the paths of each image and display to TextView
       for (int i = 0; i < images.size(); i++) {
            stringBuffer.append(images.get(i).path + "\n");
       }
        textView.setText(stringBuffer.toString());
    }
}

没有答案的答案怎么能得9分?
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
    String path = imagePathList.get(position);
    Picasso.with(mContext)
            .load(new File(path))
            .placeholder(R.drawable.ic_house_placeholder)
            .into(holder.image);
}