Android-ImagesPickers, 一个android图像选取器,带有博客

分享于 

11分钟阅读

GitHub

 
An android images picker,with blog:
  • 源代码名称:Android-ImagesPickers
  • 源代码网址:http://www.github.com/jaikydota/Android-ImagesPickers
  • Android-ImagesPickers源代码文档
  • Android-ImagesPickers源代码下载
  • Git URL:
    git://www.github.com/jaikydota/Android-ImagesPickers.git
    Git Clone代码到本地:
    git clone http://www.github.com/jaikydota/Android-ImagesPickers
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/jaikydota/Android-ImagesPickers
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    imagespickers


    ### GitHub项目地址

    Gif1

    Gif2

    ### 下载演示 Apk

    中文博客地址:http://blog.csdn.net/jaikydota163/article/details/52098880
    项目中文博客地址:http://blog.csdn.net/jaikydota163/article/details/52098880

    为什么使用ImagesPickers

    • 非常频繁出现OOM
    • 拍照/选择图片/裁剪视乎用起来有些麻烦,加上处理一些旋转、裁剪、压缩就更加麻烦了,代码多得不行不行的。

    图片裁剪图片预览图片容器图片容器带删除图片容器自定义每行数量

    使用说明使用

    配置Gradle抓取配置Gradle爬网
    //目前只上传到了jcenter,在项目gradle下使用jcenter//Currently only uploaded to the jcenter, under the project gradle use jcenterallprojects {
     repositories {
     jcenter()
     }
    }
    //在module模块的gradle中添加依赖//Add dependencies in the module's gradledependencies {
     compile 'com.jaikydota.imagespickers:imagespickers:1.0.6'//如果使用图片加载框架,添加依赖,下面用Glide示例 compile 'com.github.bumptech.glide:glide:3.6.1'}


    在你的AndroidManifest.xml 中添加以下权限

    <!-- 从sdcard中读取数据的权限 --><uses-permissionandroid:name="android.permission.READ_EXTERNAL_STORAGE"/><!-- 往sdcard中写入数据的权限 --><uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    #####创建图片加载器 ( 其中可以按照喜好使用不同的第三方图片加载框架以下为Glide示例) 创建一个 ImageLoader

    publicclassGlideLoaderimplementsImageLoader {
     @OverridepublicvoiddisplayImage(Contextcontext, Stringpath, ImageViewimageView) {
     Glide.with(context)
    . load(path)
    . placeholder(com.jaiky.imagespickers.R.drawable.global_img_default)
    . centerCrop()
    . into(imageView);
     }
    }

    配置 ImageConfig 配置 UI视图配置用户界面配置
    ImageConfig imageConfig 
     =newImageConfig.Builder(newGlideLoader())
     // 修改状态栏颜色 . steepToolBarColor(getResources().getColor(R.color.blue))
     // 标题的背景颜色 . titleBgColor(getResources().getColor(R.color.blue))
     // 提交按钮字体的颜色 . titleSubmitTextColor(getResources().getColor(R.color.white))
     // 标题颜色. titleTextColor(getResources().getColor(R.color.white))
    . build();
    多选多选项
    ImageConfig imageConfig
     =newImageConfig.Builder(newGlideLoader())
    . steepToolBarColor(getResources().getColor(R.color.blue))
    . titleBgColor(getResources().getColor(R.color.blue))
    . titleSubmitTextColor(getResources().getColor(R.color.white))
    . titleTextColor(getResources().getColor(R.color.white))
     // 开启多选 (默认为多选) . mutiSelect()
     // 多选时的最大数量 (默认 9 张). mutiSelectMaxSize(9)
     // 开启拍照功能 (默认关闭). showCamera()
     // 已选择的图片路径. pathList(path)
     // 拍照后存放的图片路径(默认/temp/picture) (会自动创建). filePath("/temp/picture")
    . build();ImageSelector.open(MainActivity.this, imageConfig); // 开启图片选择器
    单选单选项
    ImageConfig imageConfig
     =newImageConfig.Builder(newGlideLoader())
    . steepToolBarColor(getResources().getColor(R.color.blue))
    . titleBgColor(getResources().getColor(R.color.blue))
    . titleSubmitTextColor(getResources().getColor(R.color.white))
    . titleTextColor(getResources().getColor(R.color.white))
     // 开启单选 (默认为多选) . singleSelect()
     // 开启拍照功能 (默认关闭). showCamera()
     // 拍照后存放的图片路径(默认/temp/picture) (会自动创建). filePath("/temp/picture")
    . build();ImageSelector.open(MainActivity.this, imageConfig); // 开启图片选择器
    单选1:1便捷裁剪裁剪
    //配置ImageConfig添加方法// (裁剪默认配置:关闭 比例 1:1 输出分辨率 500*500).crop() 
    单选自定义裁剪自定义裁剪
    //配置ImageConfig添加方法// (裁剪默认配置:关闭 比例 1:2 输出分辨率 500*1000).crop(1, 2, 500, 1000) 
    设置显示容器设置显示容器
    //配置ImageConfig添加方法// (设置容器,默认会添加一个子视图到容器布局,继承自ViewGroup如Linearlayout// 注意容器布局中不要有其他子视图,可自己对容器布局设置宽度、Margin)// 默认每行显示4个,不带删除.setContainer(ViewGroup container) 
    容器自定义每行显示数量和是否删除显示显示多少行以及是否删除它们
    //配置ImageConfig添加方法//参数:1、显示容器,2、每行显示数量(建议不要超过8个),是否可删除(默认不带删除).setContainer(linearLayout, 6, true)
    关闭图片预览关闭图像预览
    //配置ImageConfig添加方法// (关闭图片预览功能,默认开启).closePreview() 

    onActivityResult 中获取选中的照片路径数组:

    @Overrideprotectedvoid onActivityResult(int requestCode, int resultCode, Intent data) {
     super.onActivityResult(requestCode, resultCode, data);
     if (requestCode ==ImageSelector.IMAGE_REQUEST_CODE&& resultCode ==RESULT_OK&& data !=null) {
     // 获取选中的图片路径列表 Get Images Path ListList<String> pathList = data.getStringArrayListExtra(ImageSelectorActivity.EXTRA_RESULT);
     for (String path : pathList) {
     Log.i("ImagePath", path);
     }
     }
    }

    代码示例代码示例

    publicclassMainActivityextendsAppCompatActivity {
     privateButton btn1, btn2;
     privateTextView tv1;
     privateArrayList<String> path =newArrayList<>();
     publicstaticfinalintREQUEST_CODE=123;
     privateImageConfig imageConfig;
     privateLinearLayout llContainer;
     @OverrideprotectedvoidonCreate(BundlesavedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
     btn1 = (Button) findViewById(R.id.btn1);
     btn2 = (Button) findViewById(R.id.btn2);
     tv1 = (TextView) findViewById(R.id.tv1);
     llContainer = (LinearLayout) findViewById(R.id.llContainer);
     btn1.setOnClickListener(newView.OnClickListener() {
     @OverridepublicvoidonClick(Viewv) {
     imageConfig =newImageConfig.Builder(
     newGlideLoader())
    . steepToolBarColor(getResources().getColor(R.color.titleBlue))
    . titleBgColor(getResources().getColor(R.color.titleBlue))
    . titleSubmitTextColor(getResources().getColor(R.color.white))
    . titleTextColor(getResources().getColor(R.color.white))
     // 开启单选 (默认为多选). singleSelect()
     // 裁剪 (只有单选可裁剪)//.crop()// 开启拍照功能 (默认关闭). showCamera()
     // 设置显示容器. setContainer(llContainer)
    . requestCode(REQUEST_CODE)
    . build();
     ImageSelector.open(MainActivity.this, imageConfig);
     }
     });
     btn2.setOnClickListener(newView.OnClickListener() {
     @OverridepublicvoidonClick(Viewv) {
     imageConfig =newImageConfig.Builder(
     newGlideLoader())
    . steepToolBarColor(getResources().getColor(R.color.titleBlue))
    . titleBgColor(getResources().getColor(R.color.titleBlue))
    . titleSubmitTextColor(getResources().getColor(R.color.white))
    . titleTextColor(getResources().getColor(R.color.white))
     // 开启多选 (默认为多选). mutiSelect()
     // 多选时的最大数量 (默认 9 张). mutiSelectMaxSize(9)
     // 设置图片显示容器,参数:(1、显示容器,2、每行显示数量(建议不要超过8个),是否可删除). setContainer(llContainer, 4, true)
     // 已选择的图片路径. pathList(path)
     // 拍照后存放的图片路径(默认/temp/picture). filePath("/temp")
     // 开启拍照功能 (默认关闭). showCamera()
    . requestCode(REQUEST_CODE)
    . build();
     ImageSelector.open(MainActivity.this, imageConfig);
     }
     });
     }
     @OverrideprotectedvoidonActivityResult(intrequestCode, intresultCode, Intentdata) {
     super.onActivityResult(requestCode, resultCode, data);
     if (requestCode ==REQUEST_CODE&& resultCode ==RESULT_OK&& data !=null) {
     List<String> pathList = data.getStringArrayListExtra(ImageSelectorActivity.EXTRA_RESULT);
     tv1.setText("");
     for (String path : pathList) {
     tv1.append(path);
     tv1.append("n");
     }
     path.clear();
     path.addAll(pathList);
     }
     }
    }

    1.0.6

    1.0.5

    1.0.4

    1.0.3

    1.0.2

    1.0.1

    1.0.0

    许可证

    Apache许可证 2.0


    相关文章