PicSelectAndShow图片选择框架

          因为现在开发的项目对图片的选择和拍照需求比较多,网上的框架也只是简单的针对图片进行选择,对于一些特殊机型比如三星,小米等拍照后图片会有旋转的效果处理不是很好,甚至有些框架对安卓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'

PicSelectAndShow图片选择框架_第1张图片

         项目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


你可能感兴趣的:(Android)