88![ ] ( https://github.com/Lichenwei-Dev/ImagePicker/blob/master/screenshot/Screenshot3.png )
99
1010
11+ ### 使用方式:
12+ 1、在项目下的build.gradle文件中引入(注意gradle的版本):
13+ ```
14+ //gradle版本在3.0以下引入此行
15+ compile 'com.lcw.library:imagepicker:1.0.1'
1116
12- ### 使用方法:
17+ //gradle版本在3.0以上引入此行
18+ implementation 'com.lcw.library:imagepicker:1.0.1'
19+ ```
1320
14- ### 在项目下的build.gradle文件中引入(注意gradle的版本) :
21+ 2、然后需要在AndroidManifest.xml里声明组件 :
1522```
16- compile 'com.lcw.library:imagepicker:1.0.1'//gradle版本在3.0以下引入
23+ <application>
24+ ....
25+ <!--图片选择器的主Activity-->
26+ <activity
27+ android:name="com.lcw.library.imagepicker.activity.ImagePickerActivity"
28+ android:screenOrientation="portrait" />
29+ ...
30+ </application>
1731
18- implementation 'com.lcw.library:imagepicker:1.0.1'//gradle版本在3.0以上引入
1932```
2033
21- ### 调用方式非常简单,只需要简单一行代码:
34+
35+ 3、调用方式非常简单,只需要简单一行代码:
2236```
23- ImagePicker.getInstance()
37+ ImagePicker.getInstance()
2438 .setTitle("标题")//设置标题
2539 .showCamera(true)//设置是否显示拍照按钮
2640 .setMaxCount(9)//设置最大选择图片数目(默认为1,单选)
2741 .setImageLoader(new GlideLoader())//设置自定义图片加载器
2842 .start(mContext, REQUEST_SELECT_IMAGES_CODE);//REQEST_SELECT_IMAGES_CODE为Intent调用的requestCode
29-
3043```
31- ### 获取选择图片返回的数据:
44+
45+ 4、获取选择图片返回的数据:
3246```
3347 @Override
3448 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
@@ -38,7 +52,7 @@ implementation 'com.lcw.library:imagepicker:1.0.1'//gradle版本在3.0以上引
3852 }
3953```
4054
41- ### 关于自定义图片加载器,不具体指定图片加载框架,让开发者更加灵活的定制,只需要去实现ImageLoader接口即可:
55+ 5、 关于自定义图片加载器,不具体指定图片加载框架,让开发者更加灵活的定制,只需要去实现ImageLoader接口即可:
4256```
4357public class GlideLoader implements ImageLoader {
4458
@@ -55,25 +69,55 @@ public class GlideLoader implements ImageLoader {
5569}
5670```
5771
58- ### 最后别忘了权限 ,6.0以后需要动态申请,由于国内各大厂商机型存在差异化,需要处理一些兼容上的问题, 也有比较成熟的开源库,为了简洁,本Library不提供此功能,需要开发者自行处理
72+ 6、关于权限 ,6.0以后危险权限需要动态申请,不了解的同学可以看下我之前写过的一篇文章 [ 《适配Android6.0动态权限管理》 ] ( https://www.jianshu.com/p/a37f4827079a ) ,由于国内各大厂商的ROM存在差异化,需要经常处理一些兼容上的问题, 也有比较成熟的开源库,为了简洁,本Library就不提供此功能,请开发者自行处理,所需权限:
5973```
6074 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
6175 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
6276 <uses-permission android:name="android.permission.CAMERA" />
6377```
6478
65- ### 其他
66- 根据业务的需求,有时候我们在选择一部分图片后,再次跳转图片选择器的时候,需要去保存已经勾选的图片,这边也提供了对应的方法,只需要把onActivityResult返回的图片路径List集合,重新设置进来即可,代码如下:
79+ 7、最后需要注意的是在Android7.0后私有目录被限制访问,这里做了兼容处理,在开启拍照按钮的时候需要注意:
80+
81+ (1)首先需要在AndroidManifest.xml里声明组件:
82+ ```
83+ <application>
84+ ....
85+ <!-- Android 7.0 文件共享配置 -->
86+ <provider
87+ android:name="android.support.v4.content.FileProvider"
88+ android:authorities="com.lcw.library.imagepicker.provider"
89+ android:exported="false"
90+ android:grantUriPermissions="true">
91+ <meta-data
92+ android:name="android.support.FILE_PROVIDER_PATHS"
93+ android:resource="@xml/image_picker" />
94+ </provider>
95+ ....
96+ </application>
97+ ```
98+ (2)然后在res文件夹下建立一个xml文件夹,放置xml文件(image_picker.xml)即可,xml内容如下:
99+ ```
100+ <?xml version="1.0" encoding="utf-8"?>
101+ <paths>
102+ <external-path
103+ name="imagePicker"
104+ path="" />
105+ </paths>
106+ ```
107+
108+ 8、其他:
109+ 根据业务的需求,有时候我们在选择一部分图片后,再次跳转图片选择器的时候,想要去保存已经勾选的图片状态,这边也提供了对应的方法,只需要把onActivityResult返回的图片路径List集合,重新设置进来即可,代码如下:
67110```
68111 ImagePicker.getInstance()
69112 .setTitle("标题")
70113 .showCamera(true)
71114 .setMaxCount(9)
72- .setImagePaths(mImagePaths)
115+ .setImagePaths(mImagePaths)//设置list
73116 .setImageLoader(new GlideLoader())
74117 .start(MainActivity.this, REQUEST_SELECT_IMAGES_CODE);
75118 ```
76119
120+
77121版本会持续迭代,未完待续。。。(欢迎Star,欢迎Fork)
78122
79123
0 commit comments