【问题标题】:Setting the maximum number of items to be returned by an intent设置意图返回的最大项目数
【发布时间】:2016-02-05 10:24:04
【问题描述】:

我有一个意图,可用于允许用户在图像应用程序中选择一些图像,如厨房(或用户设备中存在的任何其他图像)。

我希望用户选择仅 10 张图片,但我不知道如何在意图上设置此最大值。 我尝试查看是否可以使用 ClipData,但 clipdata 没有设置最大项目数的方法。

ClipboardManager manager = getSystemService(Context.CLIPBOARD_SERVICE)
ClipData clipdata = manager.getPrimaryClip();// in short whether i get 
or i create a clipdata, there are no methods to set maximum number of
items to be held into that clip

这是我的意图。

    Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
    photoPickerIntent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
    photoPickerIntent.setType("image/*");
    startActivityForResult(photoPickerIntent, SELECT_PHOTO); 

如何限制用户只能选择 10 张照片?

【问题讨论】:

  • 极限选择有没有解决方案?
  • @Nikhil 是的。请参阅下面的答案。我忘了发布解决方案。感谢提问

标签: android android-intent android-contentprovider android-image


【解决方案1】:

使用ClipData检查返回的项目数

ClipData mClipData = data.getClipData();
// here you can check how many images user has selected.
if(mClipData.getItemCount() >= 10) {
    // do needful here
    Log.e("APP_TAG", "Greater than THRESHOLD.");
    // show some error
    return;
}

请参阅this 问题了解更多详情。

【讨论】:

    【解决方案2】:

    你可以试试这个库: https://github.com/sangcomz/FishBun?utm_source=android-arsenal.com&utm_medium=referral&utm_campaign=2785

    它允许您设置可以共享的最大图像数量。您还可以通过设置 actionBar 和 statusBar 的颜色来自定义 PickerActivity。也可以在达到指定限制时设置您的自定义消息。

    希望这会对你有所帮助。

    【讨论】:

    • mmmm 我认为这是一个很棒的图书馆
    • @EdijaeCrusar 同意!
    【解决方案3】:

    我找到了一个很好的图像和视频选择库,名为 Matisse。您调用指定您希望用户选择的图像或视频的总数。选择会在不离开您的应用程序的情况下发生,因为名为 MatisseActivity 的活动会显示来自用户手机的所有图像,用户将在其中选择他想要的图像,直到达到指定的最大数量。

    https://github.com/zhihu/Matisse

    Matisse.from(MainActivity.this)
            .choose(MimeType.allOf())
            .countable(true)
            .maxSelectable(10)
            .thumbnailScale(0.85f)
            .imageEngine(new GlideEngine())
            .forResult(REQUEST_CODE_CHOOSE);
    

    【讨论】:

      猜你喜欢
      • 2013-01-25
      • 2012-03-16
      • 1970-01-01
      • 1970-01-01
      • 2011-10-07
      • 2021-01-17
      • 1970-01-01
      • 2021-04-03
      • 2018-05-22
      相关资源
      最近更新 更多