目录
前言
之所以写这个图片选择库是因为大部分项目都会用到,所以就抽时间写了一个sdk处理。
演示
项目引用
Android x用户引入---
implementation 'com.github.cl-6666:theSelector:v1.2.21'
Android v7引入---
implementation 'com.github.cl-6666:theSelector:v1.2.22'
使用方式
如何自定义图片加载器(不定死框架,让框架更加灵活,需要去实现ImageLoader接口即可,如果需要显示视频,优先推荐Glide加载框架,可以参考Demo实现):
/**
* 实现自定义图片加载
*/
public class GlideLoader implements ImageLoader {
private RequestOptions mOptions = new RequestOptions()
.centerCrop()
.dontAnimate()
.format(DecodeFormat.PREFER_RGB_565)
.placeholder(R.mipmap.icon_image_default)
.error(R.mipmap.icon_image_error);
private RequestOptions mPreOptions = new RequestOptions()
.skipMemoryCache(true)
.error(R.mipmap.icon_image_error);
@Override
public void loadImage(ImageView imageView, String imagePath) {
//小图加载
Glide.with(imageView.getContext()).load(imagePath).apply(mOptions).into(imageView);
}
@Override
public void loadPreImage(ImageView imageView, String imagePath) {
//大图加载
Glide.with(imageView.getContext()).load(imagePath).apply(mPreOptions).into(imageView);
}
@Override
public void clearMemoryCache() {
//清理缓存
Glide.get(MApplication.getContext()).clearMemory();
}
}
3、一行代码调用:
ImagePicker.getInstance()
.setTitle("标题")//设置标题
.showCamera(true)//设置是否显示拍照按钮
.showImage(true)//设置是否展示图片
.showVideo(true)//设置是否展示视频
.showLoading(true, "ssssssssssss") //是否显示首次加载框--加载框标题
.setMaxCount(9)//设置最大选择图片数目(默认为1,单选)
.setSingleType(true)//设置图片视频不能同时选择
.setImagePaths(mImagePaths)//设置历史选择记录
.setImageLoader(new GlideLoader())//设置自定义图片加载器
.start(MainActivity.this, REQUEST_SELECT_IMAGES_CODE);//REQEST_SELECT_IMAGES_CODE为Intent调用的requestCode
4、调用系统相机
CameraConfig config = new CameraConfig.Builder()
.needCrop(false) //是否裁剪
.cropSize(1, 1, 200, 200)
.build();
imagePicker.getInstance().toCameraActivity(MainActivity.this, config, REQUEST_SELECT_IMAGES_CODE);
5、如何获取选中的图片集合:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_SELECT_IMAGES_CODE && resultCode == RESULT_OK) {
List<String> imagePaths = data.getStringArrayListExtra(ImagePicker.EXTRA_SELECT_IMAGES);
}
}
sdk地址
GitHub - cl-6666/theSelector: 高仿微信图片选择器
使用非常的简单,目前支持图片,视频单选,多选,多文件夹切换,大图预览,自定义图片加载器等功能,后续会在内部加上Luban压缩。