Matisse

介绍:

一个设计良好的本地图片/视频文件选择库,支持不同的图片加载方式。

运行效果:

使用说明:

Gradle:

repositories {
    jcenter()
}
dependencies {
    compile 'com.zhihu.android:matisse:0.4.3'
}

权限

该库需要两个权限:

  • android.permission.READ_EXTERNAL_STORAGE

  • android.permission.WRITE_EXTERNAL_STORAGE

如果你的target 是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())
        .forResult(REQUEST_CODE_CHOOSE);

主题

MatisseActivity有两个内置的主题:

  • R.style.Matisse_Zhihu (light mode)

  • R.style.Matisse_Dracula (dark mode)

你也可以定义自己的主题。

接收返回结果

onActivityResult() 回调中:

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

1492915857310689.png

1492915857114653.png

1492915857769451.png

已下载
0