PicSelectAndShow图片选择框架

来源:互联网 发布:ug编程是什么 编辑:程序博客网 时间:2024/06/14 07:43

          因为现在开发的项目对图片的选择和拍照需求比较多,网上的框架也只是简单的针对图片进行选择,对于一些特殊机型比如三星,小米等拍照后图片会有旋转的效果处理不是很好,甚至有些框架对安卓7.0都没有适配,让我瞬间萌生了一个封装一个解决这些问题的框架,来方便以后的开发。 PicSelectAndShow是我封装的第一个框架,一个简单的图片选择,支持Android7.0系统,适配三星,小米等拍照后图片旋转问题。将拍照的代码量缩短为一行代码,方便大家对图片的选择操作(第一次封装可能会有一些不完善的地方欢迎大家指出来,一起完善)。

         首先贴出使用方法:在你项目的build.gradle中加入

         allprojects{

                repositories{

                     maven{url 'https://jitpack.io'}

                 }

          }

         然后就是加依赖了:compile 'com.github.BoBoAndroid:PicSelectAndShow:1.0'

        最新版的依赖:compile 'com.github.BoBoAndroid:PicSelectAndShow:1.01'

         项目GitHub的传送门:https://github.com/BoBoAndroid/PicSelectAndShow

        下面是每个方法的使用,包括单选,多选,拍照

public void onClick(View view){    switch (view.getId()){        case R.id.bt_single:            /**             * 调用选单张图片的方法             * .single():表明是单选             * .showCamera(true):选择界面含有拍照功能,false 选择界面不包含拍照只是选择图片             * .start():跳转             * */            MultiImageSelector.create().single().showCamera(true).start(MainActivity.this,REQUEST_PHOTO_IMAGE);            break;        case R.id.bt_single_no:            /**             *选单张图片不包含拍照功能的方法调用             * */            MultiImageSelector.create().single().showCamera(false).start(MainActivity.this,REQUEST_PHOTO_IMAGE);            break;        case R.id.bt_more:            /**             * 调用选多张图片的方法             * .multi():表明是多选             * .origin(lstPhotoPath):如果已经选过图片了,把选过的数据源带进去             * .count():一次最多选择几张图片             * */            MultiImageSelector.create().multi().showCamera(true).origin(lstPhotoPath).count(6).start(MainActivity.this,REQUEST_PHOTO_IMAGE);            break;        case R.id.bt_more_no:            /**             * 调用选多张图片不带拍照功能的方法             * */            MultiImageSelector.create().multi().showCamera(false).origin(lstPhotoPath).count(6).start(MainActivity.this,REQUEST_PHOTO_IMAGE);            break;        case R.id.bt_take_photo:            /**             * 调用拍照功能,直接调起拍照,不指定存储路径             * */            MultiImageSelector.create().takePhoto(true).start(MainActivity.this,REQUEST_PHOTO_IMAGE);            break;        case R.id.bt_takephoto_path:            /**             * 调用拍照功能,直接调起拍照,指定图片存储路径             * */            File appDir =new File(                    Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "TestPic");            if (!appDir.exists()) {                appDir.mkdir();            }            String fileName = System.currentTimeMillis() + ".jpg";            File file1 = new File(appDir, fileName);            MultiImageSelector.create().takePhoto(true).registerFile(file1).start(MainActivity.this,REQUEST_PHOTO_IMAGE);            break;    }}

         调用预览的方法:

/**  * 点击预览图片  * lstPhotoPath:   要预览的数据源  * lstPhotoPath.get(i):当前点击的图片地址  * */ MultiImageSelector.create().startImageShow(MainActivity.this,lstPhotoPath,lstPhotoPath.get(i));

         具体的使用demo可以从GitHub下载到本地运行,也可以以module形式导入进去哦,使用module的形式我以前的博客也有涉及,没看过的可以移步到:安卓弹出框控件jjdxm-dialogui之日期选择小结查看偷笑

         第一次写这种框架,有什么需要改进的,希望大家可以提出来,共同改进。另外GitHub上面,希望大家多多star哦。

         项目用到的大神知识点:Android 7.0 行为变更 通过FileProvider在应用间共享文件吧

         最后再次奉上传送门:https://github.com/BoBoAndroid/PicSelectAndShow


原创粉丝点击