1. 引言
Matisse是知乎的一个照片选取框架组件,可以提供较为丰富简单的图片选择体验。以下为官方图标:![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JXC1kksJ-1620349617122)(https://github.com/zhihu/Matisse/blob/master/image/banner.png#pic_center)]](https://img-blog.csdnimg.cn/20210507090715338.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNzYyNzc3NA==,size_16,color_FFFFFF,t_70)
同类型库如下图所示,原理我看了PictureSelector的,基本相同,但是抽象的方法区别较大,感觉是面向群体不同导致matisse比较官方,且都是英文(可惜官方文档不怎么好使)
2.问题:我遇到的是如下问题
2.1 log输出
Invalid column COUNT(*) AS count

2.2 问题解决
最后发现是由于版本不对,应该使用0.5.3-beta,这里已经解决此问题。(适配Android10)详见链接https://github.com/zhihu/Matisse/issues/659.
3.优化UI(部分自定义)
此部分我在网络上并未搜索到相关说法,于是自己研究了一下Theme相关的原理,做法如下:
3.1 覆盖Matisse.Zhihu主题风格
原理:Theme是可以继承和覆盖的。
- 继承网上有很多,基本包含隐式继承和显示继承。
- 覆盖即直接将已有主题(一般在Library中实现过)覆盖,命名同名的主题,如下:路径是values/styles.xml


3.2 单类型显示
showSingleMediaType
// Matisse.from(MainActivity.this)
// .choose(MimeType.ofVideo(),true)
// .theme(R.style.Matisse_Dracula)
// .countable(false)
// .addFilter(new GifSizeFilter(320, 320))
// .originalEnable(false)
// .showSingleMediaType(true)
// .imageEngine(new PicassoEngine())
// .forResult(REQUEST_CODE_CHOOSE);
4.项目地址(module-matisse模块)
git命令:
git clone https://github.com/baizhu0414/IpcProject.git
地址:
https://github.com/baizhu0414/IpcProject
版权声明:本文为weixin_37627774原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。