Matisse README

The project's README from github.com/zhihu/Matisse. As one markdown file: README.md.

Image

Matisse

Build Status Download

Matisse is a well-designed local image and video selector for Android. You can

Zhihu Style Dracula Style Preview

Download

Gradle:

repositories {
    jcenter()
}

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

Check out Matisse releases to see more unstable versions.

ProGuard

If you use Glide as your image engine, add rules as Glide's README says.
And add extra rule:

-dontwarn com.squareup.picasso.**

If you use Picasso as your image engine, add rules as Picasso's README says.
And add extra rule:

-dontwarn com.bumptech.glide.**

Attention: The above progurad rules are correct.

How do I use Matisse?

Permission

The library requires two permissions:

So if you are targeting Android 6.0+, you need to handle runtime permission request before next step.

Simple usage snippet


Start MatisseActivity from current Activity or Fragment:

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

Themes

There are two built-in themes you can use to start MatisseActivity:

And Also you can define your own theme as you wish.

Receive Result

In onActivityResult() callback of the starting Activity or 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);
    }
}

More

Find more details about Matisse in wiki.

Contributing

Matisse is an Open Source Project

Thanks

This library is inspired by Laevatein and uses some of its source code.

License

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 (zhihu/Matisse)

Searching Database…

12.5K ·GitHub
Что это такое?Matisse — это библиотека для Android, которая даёт вашему приложению удобный встроенный выбор локальных изображений и видео, так что не нужно самому создавать экран выбора из галереи.
Это отдельное приложение или библиотека, которую я добавляю в свой проект?Это библиотека для Android, которую вы встраиваете в своё приложение; она запускается как Activity из вашей Activity или Fragment, а не как отдельное приложение.
Как добавить её в мой проект для Android?Добавьте её через Gradle как зависимость, версии смотрите на странице релизов, затем запустите MatisseActivity из вашей Activity или Fragment и обработайте результат в onActivityResult().
Нужно ли мне что-то ещё настроить перед использованием, например разрешения или правила ProGuard?Да: библиотеке нужны разрешения READ_EXTERNAL_STORAGE и WRITE_EXTERNAL_STORAGE (запрашиваются во время работы приложения на Android 6.0+), а если вы используете Glide или Picasso как загрузчик изображений, нужно добавить их специальные правила ProGuard плюс ещё одно дополнительное правило.
Какие типы файлов и варианты настройки оно действительно поддерживает?Оно позволяет выбирать изображения JPEG, PNG, GIF и видео MPEG, MP4, есть две встроенные темы (Zhihu светлая, Dracula тёмная), поддержка своих тем, заменяемые загрузчики изображений и собственные правила фильтрации.
Как называются две встроенные темы?R.style.MatisseZhihu для светлого режима и R.style.MatisseDracula для тёмного; также можно определить свою тему.
С какими библиотеками загрузки изображений оно работает?Оно поддерживает подключаемые движки для изображений, при этом отдельно даны инструкции по настройке ProGuard для Glide и Picasso.
Зачем создали Matisse?Его создала компания Zhihu, чтобы дать разработчикам Android готовый аккуратный выбор локальных медиафайлов, чтобы не приходилось каждому писать свой с нуля.
Creator
zhihu
Size
1.9 MB
Stars
12.5K
Age
9y
Commits · 90 Days