好久没有写过文章了,最近一直在忙公司桌面维护的一些事情,前几天接到一个写一个仿微信选择多张图片的任务,今天来总结一下。发现一个非常好用的图片选择库,下面来说一下这个库的用法:
1.通过Gradle抓取和导入Jar包(Glide和RecyclerView,文末有连接)
compile 'com.yancy.imageselector:imageselector:1.1.0'
2.在 AndroidManifest.xml 中 添加 如下权限
<!-- 从sdcard中读取数据的权限 --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- 往sdcard中写入数据的权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
3.创建 图片加载器 (建议使用Glide)
public class GlideLoader implements com.yancy.imageselector.ImageLoader { @Override public void displayImage(Context context, String path, ImageView imageView) { Glide.with(context) .load(path) .placeholder(com.yancy.imageselector.R.mipmap.imageselector_photo) .centerCrop() .into(imageView); } } 4. 配置ImageSelector
ImageConfig imageConfig = new ImageConfig.Builder(MainActivity.this , new GlideLoader()) // 如果在 4.4 以上,则修改状态栏颜色 (默认黑色) .steepToolBarColor(getResources().getColor(R.color.blue)) // 标题的背景颜色 (默认黑色) .titleBgColor(getResources().getColor(R.color.blue)) // 提交按钮字体的颜色 (默认白色) .titleSubmitTextColor(getResources().getColor(R.color.white)) // 标题颜色 (默认白色) .titleTextColor(getResources().getColor(R.color.white)) // 开启多选 (默认为多选) (单选 为 singleSelect) .mutiSelect() // 多选时的最大数量 (默认 9 张) .mutiSelectMaxSize(9) // 已选择的图片路径 .pathList(path) // 拍照后存放的图片路径(默认 /temp/picture) .filePath("/ImageSelector/Pictures") // 开启拍照功能 (默认关闭) .showCamera() .build(); ImageSelector.open(imageConfig); // 开启图片选择器 5. 在 onActivityResult 中获取选中的照片路径 数组 : @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == ImageSelector.IMAGE_REQUEST_CODE && resultCode == RESULT_OK && data != null) { // Get Image Path List List<String> pathList = data.getStringArrayListExtra(ImageSelectorActivity.EXTRA_RESULT); for (String path : pathList) { Log.e("已选择图片的路径为-----", path); } } }
Glide Jar包下载
RecyclerView Jar包下载
Demo下载(Demo中包含以上2个Jar包,可直接运行)