Step 1. Add the JitPack repository to your build file
Add it in your root settings.gradle at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
Add it in your settings.gradle.kts at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
}
Add to pom.xml
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Add it in your build.sbt at the end of resolvers:
resolvers += "jitpack" at "https://jitpack.io"
Add it in your project.clj at the end of repositories:
:repositories [["jitpack" "https://jitpack.io"]]
Step 2. Add the dependency
dependencies {
implementation 'com.github.stf-android:MultiImageSelector:-SNAPSHOT'
}
dependencies {
implementation("com.github.stf-android:MultiImageSelector:-SNAPSHOT")
}
<dependency>
<groupId>com.github.stf-android</groupId>
<artifactId>MultiImageSelector</artifactId>
<version>-SNAPSHOT</version>
</dependency>
libraryDependencies += "com.github.stf-android" % "MultiImageSelector" % "-SNAPSHOT"
:dependencies [[com.github.stf-android/MultiImageSelector "-SNAPSHOT"]]
感谢原作者大神带我上路,在原基础上兼容android 7.0以上拍照 ,新增是否选取照片功能
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
compile 'com.zhy:base-rvadapter:3.0.3' //万能适配器
compile 'com.zhy:base-adapter:3.0.3' //万能适配器
compile 'com.github.bumptech.glide:glide:3.7.0'
implementation 'com.github.stf-android:MultiImageSelector:1.0.1' // 图片选择器
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<!--兼容7.0以上拍照-->
<!-- authorities:是该项目的包名+provider
<!- grantUriPermissions:必须是true,表示授予 URI 临时访问权限-->
<!--exported:必须是false-->
<!--resource:中的@xml/file_paths是我们接下来要在资源文件目录下添加的文件 -->
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!--path:需要临时授权访问的路径(.代表在相机调用时候访问的是所有路径,而文件写入时访问的路径是Android/data/com.ijuyin.prints.news/)-->
<!--name: 是你为设置的这个访问路径起的名字-->
<paths>
<external-path
name="camera_photos"
path="." />
<external-path
name="files_root"
path="Android/data/com.ijuyin.prints.news/" />
<external-path
name="external_storage_root"
path="." />
</paths>
</resources>
private void startCamera() {
MultiImageSelector mModeType = null;
if (mMode) {// 拍单张还是多张
mModeType = getMultiImageSelectorOrigin().multi();// 多选
} else {
mModeType = getMultiImageSelectorOrigin().single(); // 单选
}
String trim = waterMrakEdit.getText().toString().trim();
if (TextUtils.isEmpty(trim)) {
mModeType.start(this, mCoder); // 开始拍照
} else {
WaterMarkBean waterMarkBean = mModeType.getWaterMarkBean(); // 设置水印的属性
waterMarkBean.setTextSize(28);
waterMarkBean.setColor("#d4237a");
waterMarkBean.setAntiAlias(true);
waterMarkBean.setAlpha(180);
waterMarkBean.setRotate(-30);
waterMarkBean.setMark(trim);
mModeType.setWaterMarkStyle(waterMarkBean).start(this, mCoder); // 开始拍照
}
}
private MultiImageSelector getMultiImageSelectorOrigin() {
return MultiImageSelector.create()
.showCamera(mShowCamera) // 是否显示相机. 默认为显示
.count(mPhotoNumSp) // 最大选择图片数量, 默认为9. 只有在选择模式为多选时有效
.selectPhoto(mSelectorPhoto) // 是否主动从相册中选择照片
.setWaterMarkPrivacy(mWaterMarkVis) // 是否添加水印
.origin(listPhotoPath);//返回照片集合的路径
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == mCoder) {
if (resultCode == RESULT_OK) { // 照片的路径集合返回
listPhotoPath = data.getStringArrayListExtra(MultiImageSelectorActivity.EXTRA_RESULT);
setGridViewData();
}
}
}
#### 说明:
1.主动选择 单选模式:拍照进行替换照片,不能移除。 多选模式:拍照增加替换或者点击某张照片进行增加,移除。 2.不主动选择(默认选中) 单选模式:只能拍照更换照片(默认选中该照片)。 多选模式:拍照(默认选中最近几次拍的照片),可长按某张照片移除它。 除拍照外其他操作最后点击“完成”即可。