使用
- gitbub:https://github.com/zhihu/Matisse
- gradle
repositories {
jcenter()
}
dependencies {
implementation 'com.zhihu.android:matisse:$latest_version'
}
- 权限 高版本权限自行配置
-
android.permission.READ_EXTERNAL_STORAGE android.permission.WRITE_EXTERNAL_STORAGE
图片选择与拍照
- 拍照需增加
在Android Manifest当中的Application节点下添加FileProvider
authorites是你项目的包名 + fileprovider
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.zhihu.matisse.sample.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths_public"></meta-data>
</provider>
</application>//节点
然后在Res文件下创建xml文件夹,然后创建filepaths.xml
<paths>
<external-path
name="my_images"
path="Pictures"/>
</paths>
- 申请权限
- 使用
-
@Override public void onClick(final View v) { RxPermissions rxPermissions = new RxPermissions(this); rxPermissions.request(Manifest.permission.WRITE_EXTERNAL_STORAGE) .subscribe(new Observer<Boolean>() { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(Boolean aBoolean) { if (aBoolean) { switch (v.getId()) { case R.id.zhihu://图片多选 MatisseUtils.chooseImage(SampleActivity.this); break; case R.id.dracula://拍照 MatisseUtils.takePhoto(SampleActivity.this, "com.zhihu.matisse.sample.fileprovider", "test"); break; default: break; } mAdapter.setData(null, null); } else { Toast.makeText(SampleActivity.this, R.string.permission_request_denied, Toast.LENGTH_LONG) .show(); } } @Override public void onError(Throwable e) { } @Override public void onComplete() { } }); } @