移动应用 活跃维护

Matisse

zhihu/Matisse

🎆 一个为 Android 精心设计的本地图片和视频选择器

12497
Stars 标星
2043
Forks 分支
236
Watchers 关注
464
Open Issues
Java
主要语言
Apache-2.0
开源协议
1.9 MB
仓库大小
3 年前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:zhihu/Matisse
git clone https://github.com/zhihu/Matisse.git
git clone git@github.com:zhihu/Matisse.git
README.md master

机器翻译正文由机器翻译自项目原始文档(英文),排版经程序统一处理,可能存在偏差,请以原项目仓库为准。

马蒂斯

马蒂斯是一个为安卓设计的本地图片和视频选择器。你可以

  • 在 Activity 或 Fragment 中使用它
  • 选择图片(包括 JPEG、PNG、GIF)和视频(包括 MPEG、MP4)
  • 应用不同主题,包括两个内置主题和自定义主题
  • 不同的图片加载器
  • 定义自定义过滤规则
  • 还有更多功能等你自己发现
知乎风格 德古拉风格 预览

下载

Gradle:

repositories {
    jcenter()
}

dependencies {
    implementation 'com.zhihu.android:matisse:$latest_version'
}

查看 Matisse 版本 以查看更多不稳定的版本。

ProGuard

如果你使用 Glide 作为你的图片引擎,请按 Glide 的自述文件添加规则。并添加额外规则:

-dontwarn com.squareup.picasso.**

如果你使用 Picasso 作为你的图像引擎,请按照 Picasso 的自述文件添加规则。并添加额外的规则:

-dontwarn com.bumptech.glide.**

注意:上述Proguard规则是正确的。

我如何使用 Matisse?

权限

该库需要两个权限:

  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.WRITE_EXTERNAL_STORAGE

因此,如果您针对的是Android 6.0,您需要在下一步之前处理运行时权限请求。

简单的使用示例


从当前 Activity 或 Fragment 启动 MatisseActivity:

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);

主题

有两个内置主题可供你开始使用 MatisseActivity:

  • R.style.Matisse_Zhihu (light mode)
  • R.style.Matisse_Dracula (dark mode)

你也可以根据自己的喜好定义自己的主题。

接收结果

在 onActivityResult() 中,启动 Activity 或 Fragment 的回调:

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);
    }
}

更多

在 wiki 中找到关于马蒂斯的更多信息。

贡献

Matisse is an Open Source Project

感谢

这个库的灵感来自 Laevatein,并使用了它的一些源代码。

许可证

Copyright 2017 Zhihu Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
本站来源与版权声明
  • 本文标题:Matisse - 🎆 一个为 Android 精心设计的本地图片和视频
  • 本文链接:https://www.cn121.com/mobile/zhihu-matisse.html
  • 原项目:zhihu/Matisse 版权归原作者 zhihu 及贡献者所有
  • 收录信息:本站于 2026-10-21 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
  • 开源协议:收录时本项目采用 Apache-2.0(查看 LICENSE 原文),本站译文为其衍生内容;使用、修改、分发请以该仓库 LICENSE 原文为准。本站对原文仅作排版与图片地址适配, 并保留原项目的 NOTICE 与署名要求。
  • 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 zhihu/Matisse。
  • 翻译说明:本页正文为人工智能生成内容——由机器翻译对原项目 README 初译、经程序校验排版,可能存在错漏,请以原项目文档为准。
  • 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
  • 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。