最近也是剛好項目用到,於是就動手寫了一個Android 圖片選取器的庫。支援圖庫多選/單選/圖片裁剪/拍照/自訂圖片載入庫,極大程度的簡化使用。
截圖
優點
1、通過實現ImageLoader介面,可以實現自訂圖片載入器的功能。例如可以用Glide、Picasso、ImageLoader,暫不支援Fresco,因為SimpleDraweeView本身並不屬於ImageView。當然,也可用相同的思路來實現。
2、可配置的ImgSelConfig。方便進行擴充。
3、簡化使用
項目地址:https://github.com/smuyyh/ImageSelector
依賴
dependencies { compile 'com.yuyh.imgsel:library:1.0.1'}
使用
配置許可權
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
使用
// 自訂圖片載入器private ImageLoader loader = new ImageLoader() { @Override public void displayImage(Context context, String path, ImageView imageView) { // TODO 在這邊可以自訂圖片載入庫來載入ImageView,例如Glide、Picasso、ImageLoader等 Glide.with(context).load(path).into(imageView); }};// 配置選項ImgSelConfig config = new ImgSelConfig.Builder(loader) // 是否多選 .multiSelect(false) // “確定”按鈕背景色 .btnBgColor(Color.GRAY) // “確定”按鈕文字顏色 .btnTextColor(Color.BLUE) // 標題 .title("圖片") // 標題文字顏色 .titleColor(Color.WHITE) // TitleBar背景色 .titleBgColor(Color.parseColor("#3F51B5")) // 裁剪大小。needCrop為true的時候配置 .cropSize(1, 1, 200, 200) .needCrop(true) // 第一個是否顯示相機 .needCamera(false) // 最大選擇圖片數量 .maxNum(9) .build();// 跳轉到圖片選取器ImgSelActivity.startActivity(this, config, REQUEST_CODE);@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // 圖片選擇結果回調 if (requestCode == REQUEST_CODE && resultCode == RESULT_OK && data != null) { List<String> pathList = data.getStringArrayListExtra(ImgSelActivity.INTENT_RESULT); for (String path : pathList) { tvResult.append(path + "\n"); } }}
以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援雲棲社區。