2

У меня есть намерение, которое может использоваться, чтобы позволить пользователю выбирать некоторые изображения в графическом приложении, таком как камбуз (или любой другой, присутствующий на устройстве пользователя).Установка максимального количества элементов, подлежащих возврату с помощью намерения

Я хочу, чтобы пользователь выбирал ТОЛЬКО 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 фотографий?

ответ

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 вопрос для более подробной информации.

0

Используйте цикл для каждого выбора, и если выбранный размер изображения больше 10, выполните некоторые действия.

2

Не через ACTION_PICK. ACTION_PICK не документирован, чтобы поддерживать EXTRA_ALLOW_MULTIPLE вообще, и поэтому могут быть устройства, которые не допускают множественный выбор для этого намерения. Даже в действиях Intent, для которых EXTRA_ALLOW_MULTIPLE является частью протокола (например, ACTION_GET_CONTENT), нет никаких дополнительных функций для контроля максимального количества.

Добро пожаловать, чтобы создать свой собственный пользовательский интерфейс для выбора изображений. Мы можем использовать эту библиотеку для множественного выбора изображений с помощью свойства setSelectionLimit. https://github.com/jaydeepw/poly-picker

private void getImages() { 
    Intent intent = new Intent(mContext, ImagePickerActivity.class); 
    Config config = new Config.Builder() 
      .setTabBackgroundColor(R.color.white) // set tab background color. Default white. 
      .setTabSelectionIndicatorColor(R.color.blue) 
      .setCameraButtonColor(R.color.green) 
      .setSelectionLimit(2) // set photo selection limit. Default unlimited selection. 
      .build(); 
    ImagePickerActivity.setConfig(config); 
    startActivityForResult(intent, INTENT_REQUEST_GET_IMAGES);} 
+0

похоже, что только приложение для галерей. не так ли? –

+0

, используя эту библиотеку, все изображения с устройства. мы можем ограничить выделение изображений. его не ограничивается галерейным приложением – Venkatesh

+0

, собираюсь проверить его и сообщить вам результаты. Я видел, что в этой библиотеке много проблем, включая проблемы с памятью в github. –

3

Вы можете попробовать эту библиотеку: https://github.com/sangcomz/FishBun?utm_source=android-arsenal.com&utm_medium=referral&utm_campaign=2785

Это позволяет установить максимальное количество изображений, которые могут быть разделены. Вы также можете настроить PickerActivity, установив цвет actionBar & statusBar. Также можно настроить свое пользовательское сообщение, когда оно достигнет указанного предела.

Надеюсь, это вам поможет.

+0

mmmm Я думаю, что это потрясающая библиотека –

Смежные вопросы