<Excerpt in index | 首页摘要>
Android 图片选择器
<The rest of contents | 余下全文>
项目概述
我们项目中经常碰到这样的需求:选择图片
原生Android提供一套比较完善的机制供开发者调用来选择图片.
但是个各大厂商的深度定制。
我在实际项目中发现,各种系统下返回的方式五花八门。
有直接返回路径的,有返回内容解析者的。甚至还有返回数组,默认给你缩略图的(三星的一款).
再者,系统原生的方式调用UI也是不可定制的。
所以就出现了现在的这个选择器.
项目已经上传至github:PicSelector
让我们看一下Demo图(图片过大,如果无法正常观看可以挂代理或者右键另存到本地查看):
使用方式
需要读取sd卡的权限!
单图选择:
1 2 3 4 5 6
| UIManager.getInstance().start(this, new OnSelectedListener() { @Override public void onSelect(List<String> selecteds) { Toast.makeText(MainActivity.this, selecteds.toString(), Toast.LENGTH_LONG).show(); } });
|
多图选择:
1 2 3 4 5 6 7
| UIManager.getInstance().start(this, 9, new OnSelectedListener() { @Override public void onSelect(List<String> selecteds) { Toast.makeText(MainActivity.this, selecteds.toString(), Toast.LENGTH_LONG).show(); } });
|
带记录的模式多图选择:
1 2 3 4 5 6 7 8 9 10
|
UIManager.getInstance().start(this, 9, false, history, new OnSelectedListener() { @Override public void onSelect(List<String> selecteds) { history = selecteds; Toast.makeText(MainActivity.this, selecteds.toString(), Toast.LENGTH_LONG).show(); UIManager.getInstance().removeOnImageClickListener(); } });
|
额外的一种模式,可以获取图片点击事件.
如果设置了这个,那么点击图片将执行用户设置的回调,点击预览的右上角才是选择该图片.
Demo中的第三个按钮,就是这个模式的演示
请务必在start之前调用!
1 2 3 4 5 6 7 8 9
| UIManager.getInstance().setOnImageClickListener(new OnImageClickListener() { @Override public void onClick(String path) { Toast.makeText(MainActivity.this, path, Toast.LENGTH_SHORT).show(); } });
UIManager.getInstance().removeOnImageClickListener();
|