Android-某乎图片选择器Matisse的使用心得

2022-09-29  本文已影响0人  阿博聊编程
图片来源网络,入侵必删

最近在Android项目开发当中使用到某乎开源的图片选择器,这篇博客分享一下相关的使用心得,希望对看文章的朋友有所启发。

引入开源库

首先需要在项目级别的build.gradle当中加入:

repositories {
    jcenter()
}

appbuild.gradle中加入:

dependencies {
    implementation 'com.zhihu.android:matisse:0.5.3-beta3'
}

我发布博客的时候,开源库版本是0.5.3-beta3如果你需要最新版本请看开源库文档

代码示例

Matisse.from(MainActivity.this)
        .choose(MimeType.allOf())
        .countable(true)
        .maxSelectable(9)
        .addFilter(new GifSizeFilter(320, 320, 5 * Filter.K * Filter.K))
        .gridExpectedSize(getResources().getDimensionPixelSize(R.dimen.grid_expected_size))
        .restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)
        .thumbnailScale(0.85f)
        .imageEngine(new GlideEngine())
        .showPreview(false) // Default is `true`
        .forResult(REQUEST_CODE_CHOOSE);

这是开源库文档中使用范例,我在开发中也是这样使用的,GifSizeFilter需要从开源库源代码中拷贝出来使用。

选中之后的回调处理:

List<Uri> mSelected;

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == REQUEST_CODE_CHOOSE && resultCode == RESULT_OK) {
        mSelected = Matisse.obtainResult(data);
        Log.d("Matisse", "mSelected: " + mSelected);
    }
}

注意:使用开源库需要储存权限:

android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE

在项目targetSdkVersion >= 30以上的时候,你需要申请:

android.permission.MANAGE_EXTERNAL_STORAGE
上一篇下一篇

猜你喜欢

热点阅读