Android 图片选择器,丰富的配置选项,极大程度的简化使用

最近也是刚好项目用到,于是就动手写了一个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}

欢迎交流指正~

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )