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,因此可能有設備不允許針對該意圖進行多重選擇。即使在EXTRA_ALLOW_MULTIPLE是協議的一部分(例如ACTION_GET_CONTENT)的Intent操作中,也沒有用於控制最大計數的附加項。

歡迎您創建自己的圖像選擇UI。 我們可以將這個庫用於具有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上的內存問題。 –