allprojects {
repositories {
...
maven { url 'https://www.jitpack.io' }
}
}
dependencies {
implementation 'com.github.Ct7Liang:ImageSelector:1.3'
}
<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"/>
项目 -> res目录下 -> 新建xml文件夹 -> 创建"file_path.xml"文件(名称随意,与清单文件中保持一致即可)
//file_path.xml内容:
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingDefaultResource">
<external-path name="external_files" path="Ct7liang/img_select"/>
</paths>
清单文件中:
<application
...
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="项目包名(appId)"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_path" />
</provider>
...
</application>
//创建PictureSelector对象
//Activity中使用
PictureSelector pictureSelector = new PictureSelector(Activity activity, "项目包名(appId)", 999);
//Fragment中使用
PictureSelector pictureSelector = new PictureSelector(Fragment fragment, "项目包名(appId)", 999);
//单选本地图片(是否需要裁剪)
pictureSelector.selectPhoto(boolean isCrop);
//多选本地图片(最大可选取数量)
pictureSelector.selectPhotos(int maxNum);
//拍照选择(是否需要裁剪)
pictureSelector.takePhoto(boolean isCrop);
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//获取最后的图片(以图片绝对路径的集合的形式返回)
if (pictureSelector!=null){
ArrayList<String> images = pictureSelector.getImages(requestCode, data);
Log.i("imgSelector", images.toString());
}
}
@Override
protected void onDestroy() {
super.onDestroy();
//页面关闭的时候,删除本地缓存目录(可选)
if (pictureSelector!=null){
pictureSelector.onDestroy();
}
}