android Matisse图片选择器的引入

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lixiaoshuai_91/article/details/78466237

hi,由于最近琐事太多,很久没有更新博客了,今天抽空给大家分享一个图片下载器Matisse,出自知乎,绝对的精品;

之前也使用过三方的图片选择器,但是Matisse的图片界面效果简直是美翻天,并且Matisse中引入了Glide和Picasso,这两个库可以自行选择;

    

具体好不好用还是自己去体会吧,反正我是推荐使用的,下面就直接上代码了

首先引入依赖库文件,Matisse显示图片我使用的是Glide

compile 'com.zhihu.android:matisse:0.4.3'

  compile 'com.github.bumptech.glide:glide:3.5.2'

当你需要调用图片选择器就用这段代码

Matisse.from(activity)
                .choose(MimeType.allOf())//照片视频全部显示
                .countable(true)//显示选择的数量
                .maxSelectable(1) // 图片选择的最多数量
                .gridExpectedSize(MyApplication.getApp().getWidth() / 3 - 5)//图片显示在列表中的大小
                .restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)
                .thumbnailScale(0.85f) // 缩略图的比例
                .imageEngine(new GlideEngine()) // 使用的图片加载引擎
                .theme(R.style.Matisse_Zhihu)//主题
                .capture(false) //是否提供拍照功能
                .forResult(23); // 设置作为标记的请求码

你选择的图片会以一个List返回给你

 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 23&& resultCode == RESULT_OK) {
            List<Uri> mSelected = Matisse.obtainResult(data);
        }
    }

扫描二维码关注公众号,回复: 3492893 查看本文章

拿到图片后你想干嘛,就是你的事了,嘿嘿

如果你想使用相机,就没有这么简单了, 用相机!相机!相机!

如果你只看官方文档,你是无法完成相机的使用

会多几步操作,首先在res下的xml文件夹下新建 filepaths.xml文件

<?xml version="1.0" encoding="utf-8"?>
<paths>
    <external-path
        name="my_images"
        path="Pictures"/>
</paths>

然后在AndroidManifest文件的application节点下放入

<provider
            android:name="android.support.v4.content.FileProvider"
            android:authorities="包名.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/filepaths" />
        </provider>

这样配置就完成了,那么在你使用相机和选择图片的时候直接调用

Matisse.from(activity)
                .choose(MimeType.allOf())//照片视频全部显示
                .countable(true)//显示选择的数量
                .maxSelectable(1) // 图片选择的最多数量
                .gridExpectedSize(MyApplication.getApp().getWidth() / 3 - 5)//图片显示在列表中的大小
                .restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)
                .thumbnailScale(0.85f) // 缩略图的比例
                .imageEngine(new GlideEngine()) // 使用的图片加载引擎
                .theme(R.style.Matisse_Zhihu)//主题
                .capture(true) //是否提供拍照功能
                .captureStrategy(
                        new CaptureStrategy(true, "包名.fileprovider"))
                .forResult(23); // 设置作为标记的请求码

返回的照片和上面不使用相机返回的是一样的


猜你喜欢

转载自blog.csdn.net/lixiaoshuai_91/article/details/78466237
今日推荐