我有一个意图,可以让用户在图像应用程序中选择一些图像,如厨房(或用户设备中的任何其他)。
我希望用户选择仅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张照片?
答案 0 :(得分:3)
它允许您设置可以共享的最大图像数。您还可以通过设置actionBar&的颜色来自定义PickerActivity。状态栏。当达到指定限制时,也可以设置您的自定义消息。
希望这会对你有所帮助。
答案 1 :(得分:2)
使用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 :(得分:0)
我找到了一个很好的图像和视频选择库,名为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);