美文网首页
Android-某乎图片选择器Matisse的使用心得

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

作者: 阿博聊编程 | 来源:发表于2022-09-29 01:43 被阅读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
    

    相关文章

      网友评论

          本文标题:Android-某乎图片选择器Matisse的使用心得

          本文链接:https://www.haomeiwen.com/subject/cimhartx.html