最近也是刚好项目用到,于是就动手写了一个Android 图片选择器的库。支持图库多选/单选/图片裁剪/拍照/自定义图片加载库,极大程度的简化使用。
截图

优点
1、通过实现ImageLoader接口,可以实现自定义图片加载器的功能。例如可以用Glide、Picasso、ImageLoader,暂不支持Fresco,因为SimpleDraweeView本身并不属于ImageView。当然,也可用相同的思路来实现。 2、可配置的ImgSelConfig。方便进行扩展。 3、简化使用
项目地址
https://github.com/smuyyh/ImageSelector
依赖
1dependencies { 2 compile 'com.yuyh.imgsel:library:1.0.1' 3}
使用
配置权限
1<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 2<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 3<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
使用
1// 自定义图片加载器 2private ImageLoader loader = new ImageLoader() { 3 @Override 4 public void displayImage(Context context, String path, ImageView imageView) { 5 // TODO 在这边可以自定义图片加载库来加载ImageView,例如Glide、Picasso、ImageLoader等 6 Glide.with(context).load(path).into(imageView); 7 } 8}; 9// 配置选项 10ImgSelConfig config = new ImgSelConfig.Builder(loader) 11 // 是否多选 12 .multiSelect(false) 13 // “确定”按钮背景色 14 .btnBgColor(Color.GRAY) 15 // “确定”按钮文字颜色 16 .btnTextColor(Color.BLUE) 17 // 标题 18 .title("图片") 19 // 标题文字颜色 20 .titleColor(Color.WHITE) 21 // TitleBar背景色 22 .titleBgColor(Color.parseColor("#3F51B5")) 23 // 裁剪大小。needCrop为true的时候配置 24 .cropSize(1, 1, 200, 200) 25 .needCrop(true) 26 // 第一个是否显示相机 27 .needCamera(false) 28 // 最大选择图片数量 29 .maxNum(9) 30 .build(); 31 32// 跳转到图片选择器 33ImgSelActivity.startActivity(this, config, REQUEST_CODE); 34 35 36@Override 37protected void onActivityResult(int requestCode, int resultCode, Intent data) { 38 super.onActivityResult(requestCode, resultCode, data); 39 // 图片选择结果回调 40 if (requestCode == REQUEST_CODE && resultCode == RESULT_OK && data != null) { 41 List<String> pathList = data.getStringArrayListExtra(ImgSelActivity.INTENT_RESULT); 42 for (String path : pathList) { 43 tvResult.append(path + "\n"); 44 } 45 } 46}
欢迎交流指正~