按照慣例先上圖:
pictureSelector.png
這樣的相冊(cè)圖片選擇器需求大家肯定經(jīng)常遇到汗侵,網(wǎng)上的庫(kù)也很多忿峻,但是大部分都與選擇器的 UI 綁定了掀亥。于是自己動(dòng)手實(shí)現(xiàn)一個(gè)簡(jiǎn)單易用昆箕,非視圖耦合的相冊(cè)選擇器:
引入
compile 'com.yinzihao:PictureSelector:{latest_version}'
使用指南
直接集成
PictureSelectorManager.builder()
.maxSelectPictureNum(9)//做多可選中的圖片數(shù)量限制
.recyclerViewSpanCount(4)//供選擇的圖片列表的顯示列數(shù)
.start(getApplicationContext(), MainActivity.this);
使用 Builder 模式傳入需要自定義的參數(shù)鸦列,調(diào)用 start()
方法跳轉(zhuǎn)到框架中的圖片選擇 Activity。
注意:讀取相冊(cè)需要 READ_EXTERNAL_STORAGE
權(quán)限为严,調(diào)用時(shí)需自行考慮 Android 6.0 權(quán)限問(wèn)題敛熬。
在 onActivityResult()
中獲取結(jié)果。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case PictureSelectorManager.REQUEST_CODE_SELECT_PICTURE:
switch (resultCode) {
case RESULT_OK:
ArrayList<String> picturePathList = data.getStringArrayListExtra(PictureSelectorActivity.SELECTED_PICTURE_LIST_KEY);
......
break;
}
break;
}
}
自定義數(shù)據(jù)結(jié)果展示
如果你不想使用框架中的圖片選擇 Activity 第股,可直接使用框架更內(nèi)部的 PictureLoaderCallback
來(lái)自行獲取數(shù)據(jù)顯示应民。
getSupportLoaderManager().initLoader(0, args, new PictureLoaderCallback(getApplicationContext(),
new PictureLoaderCallback.ResultCallback() {
@Override
public void onResult(List<PictureDirectory> pictureDirectories) {
pictureDirectoryList = pictureDirectories;
if (pictureDirectories != null && pictureDirectories.size() > 0) {
......
}
}
}));