Android 图片选择器,丰富的配置选项,极大程度的简化使用
来源:互联网 发布:手机淘宝如何实名认证? 编辑:程序博客网 时间:2024/06/01 19:56
最近也是刚好项目用到,于是就动手写了一个Android 图片选择器的库。支持图库多选/单选/图片裁剪/拍照/自定义图片加载库/沉浸式状态栏,极大程度的简化使用。
截图
优点
1、通过实现ImageLoader接口,可以实现自定义图片加载器的功能。例如可以用Glide、Picasso、ImageLoader,暂不支持Fresco,因为SimpleDraweeView本身并不属于ImageView。当然,也可用相同的思路来实现。
2、可配置的ImgSelConfig,充分自由定制,方便进行扩展。
3、简化使用
4、增加沉浸式状态栏配置选项
项目地址
https://github.com/smuyyh/ImageSelector
依赖
dependencies { compile 'com.yuyh.imgsel:library:1.3.8'}
版本
V1.3.8 图片裁剪适配android-7.0 解决Provider冲突
注意事项
- 图片加载由调用者自定义一个ImageLoader(详见使用方式), 可通过Glide、Picasso等方式加载
- 用户自行选择加载方式,所以加载图片不受本库控制,若出现OOM等问题,可能需要在displayImage里进行压缩处理等
- 有好的建议可以提issue, 谢谢~~
使用
配置权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.CAMERA"/>
使用方式
// 自定义图片加载器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(context, loader) // 是否多选, 默认true .multiSelect(false) // 是否记住上次选中记录, 仅当multiSelect为true的时候配置,默认为true .rememberSelected(false) // “确定”按钮背景色 .btnBgColor(Color.GRAY) // “确定”按钮文字颜色 .btnTextColor(Color.BLUE) // 使用沉浸式状态栏 .statusBarColor(Color.parseColor("#3F51B5")) // 返回图标ResId .backResId(android.support.v7.appcompat.R.drawable.abc_ic_ab_back_mtrl_am_alpha) // 标题 .title("图片") // 标题文字颜色 .titleColor(Color.WHITE) // TitleBar背景色 .titleBgColor(Color.parseColor("#3F51B5")) // 裁剪大小。needCrop为true的时候配置 .cropSize(1, 1, 200, 200) .needCrop(true) // 第一个是否显示相机,默认true .needCamera(false) // 最大选择图片数量,默认9 .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"); } }}
欢迎交流指正~
12 0
- Android 图片选择器,丰富的配置选项,极大程度的简化使用
- 代码生成器,极大简化你的工作
- 初探jquery之强大丰富的选择器
- jQuery系列1---丰富的选择器
- AdPlayBanner:功能丰富、一键式使用的图片轮播插件
- 微信 ui 版的 PhotoPicker,最大程度地简化使用.
- 简化后的省市区选择器
- Android 仿微信的图片选择器ImageSelector的使用
- Android 仿微信的图片选择器ImageSelector的使用
- 使用Rman的Plus archvielog选项简化数据库备份操作
- 使用Rman的Plusarchvielog选项简化备份操作
- jQuery是一个JavaScript库极大的简化JavaScript编程
- Android学习笔记 (图片选择器的使用selector)
- Android之多图片选择器MultiImageSelector库的使用(仿微信)
- SOA应用使BPM管理得到最大程度的简化
- 丰富程序Notification的使用
- 使用XML Schema的简化配置方式
- Android开发中状态选择器的配置与使用(一)
- HDU 5794(杨辉三角+Lucas)
- 在windows下批处理R脚本
- Androidmainfest主配置文件以及intent的跳转
- disconf简介及disconf client使用
- 响应者状态
- Android 图片选择器,丰富的配置选项,极大程度的简化使用
- HDU 1907 John(Nim博弈)
- html初学
- this和static
- js 作用域与作用域链
- MYSQL 解锁与锁表
- Linux LVM逻辑卷配置过程详解
- 并发,同步,异步,互斥,阻塞,非阻塞的理解
- hdu5752——Sqrt Bo(水)