Skip to content
leavesCZY edited this page Aug 21, 2023 · 30 revisions

一、Matisse

一个用 Jetpack Compose 实现的 Android 图片/视频 选择框架

特点:

  • 适配到 Android 13
  • 解决了多个系统兼容性问题
  • 按需索取权限,极简的权限声明
  • 完全用 Kotlin & Jetpack Compose 实现
  • 支持同时选择图片和视频,或者单独选择两者之一
  • 支持精细自定义主题,提供了日夜间两套默认主题
  • 支持多种拍照策略,可以自由选择是否要申请权限

关联的文章:

二、导入依赖

dependencyResolutionManagement {
    repositories {
        maven {
            setUrl("https://jitpack.io")
        }
    }
}

dependencies {
    implementation("com.github.leavesCZY:Matisse:latestVersion")
}

三、接入说明

  • Jetpack Compose 在 debug 和 release 模式下性能差异较大,在加载图片列表时会表现得更加明显,进行性能测试时建议使用 release 包

  • Matisse 通过 compose-bom 来管理依赖,以此保证各个 Compose 依赖之间相互兼容且均是 release 版本。由于 Compose 的迭代速度很快,一些 API 会随着版本更迭而变化,Matisse 和非 release 版本的 Compose 可能不完全兼容。如果遇到崩溃问题,可以先检查下是否由于项目中使用的是非 release 版本的 Compose 造成的

  • 由于引用方必须实现 ImageEngine,因此如果引用方项目之前没有使用到 Jetpack Compose 的话,需要开启对 Jetpack Compose 的支持。kotlinCompilerExtensionVersion 的具体版本取决于引用方的 Kotlin 版本:Compose to Kotlin Compatibility Map

android {
  buildFeatures {
      compose = true
  }
  composeOptions {
      kotlinCompilerExtensionVersion = "x.x.x"
  }
}
Clone this wiki locally