
相比1.0.+版本,2.0版本进行了代码的大块重构,注重模块间的代码解耦,简化了配置,将兼容Android7.0所需要的FileProvider下沉到库中完成,不再需要开发者配置,并对GIF图,视频,大图预览等功能有了支持。
1、如何 在项目中引入该图片加载库:
//gradle版本在3.0以下引入此行
compile 'com.lcw.library:imagepicker:2.0.0'
//gradle版本在3.0以上引入此行
implementation 'com.lcw.library:imagepicker:2.0.0'
2、需要在AndroidManifest.xml里声明组件:
<application>
....
<activity
android:name="com.lcw.library.imagepicker.activity.ImagePickerActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.lcw.library.imagepicker.activity.ImagePreActivity"
android:screenOrientation="portrait" />
...
</application>
3、一行代码调用:
ImagePicker.getInstance()
.setTitle("标题")//设置标题
.showCamera(true)//设置是否显示拍照按钮
.showImage(true)//设置是否展示图片
.showVideo(true)//设置是否展示视频
.setMaxCount(9)//设置最大选择图片数目(默认为1,单选)
.setImagePaths(mImageList)//保存上一次选择图片的状态,如果不需要可以忽略
.setImageLoader(new GlideLoader())//设置自定义图片加载器
.start(MainActivity.this, REQUEST_SELECT_IMAGES_CODE);//REQEST_SELECT_IMAGES_CODE为Intent调用的requestCode
4、如何获取选中的图片集合:
@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);
}
}
5、如何自定义图片加载器(让开发者更加灵活的定制,只需要去实现ImageLoader接口即可):
public class GlideLoader implements ImageLoader {
//to do something 可以参考Demo用法
}
6、关于权限,6.0以后危险权限需要动态申请,不了解的同学可以看下我之前写过的一篇文章《适配Android6.0动态权限管理》,由于国内各大厂商的ROM存在差异化,需要经常处理一些兼容上的问题,也有比较成熟的开源库支持,为了简洁,本Library就不提供此功能,请开发者自行处理,所需权限:
<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" />
版本会持续迭代,欢迎大家给建议。。。(欢迎Star,欢迎Fork)
$ claude mcp add ImagePicker \
-- python -m otcore.mcp_server <graph>