第三方开源库:图片选择MultiImageSelector

来源:互联网 发布:阿里云服务器重启 编辑:程序博客网 时间:2024/05/21 14:07

MultiImageSelector

github地址:https://github.com/lovetuzitong/MultiImageSelector 模仿微信图片选择,返回的是图片的路径,但是没有图片剪切和上传的功能。 源码:https://github.com/s1168805219/SelectorPhoto

使用步骤

1.添加依赖2.配置AndroidManifest.xml3.在我们的项目中简单调用API,或详细调用API4.在onActivityResult(…)中对返回的数据做处理

1 添加依赖

repositories {    maven { url "https://jitpack.io" }}dependencies {    ...    compile 'com.github.lovetuzitong:MultiImageSelector:1.2'    ...}

2 在你的 AndroidManifest.xml 中做如下声明:

   <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><application>  <!--Image Selector Entry-->   <activity       android:configChanges="orientation|screenSize"       android:name="me.nereo.multi_image_selector.MultiImageSelectorActivity" /></application>

3 调用API
点单调用:

// Multi image selector form an ActivityMultiImageSelector.create(Context).start(Activity, REQUEST_IMAGE);

详细调用API:

MultiImageSelector.create(Context context)        .showCamera(boolean) // 是否显示相机. 默认为显示        .count(int) // 最大选择图片数量, 默认为9. 只有在选择模式为多选时有效        .single() // 单选模式        .multi() // 多选模式, 默认模式;        .origin(ArrayList<String>) // 默认已选择图片. 只有在选择模式为多选时有效        .start(Activity/Fragment, REQUEST_IMAGE);

老版本intent调用:

Intent intent = new Intent(mContext, MultiImageSelectorActivity.class);// 是否显示调用相机拍照intent.putExtra(MultiImageSelectorActivity.EXTRA_SHOW_CAMERA, true);// 最大图片选择数量intent.putExtra(MultiImageSelectorActivity.EXTRA_SELECT_COUNT, 9);// 设置模式 (支持 单选/MultiImageSelectorActivity.MODE_SINGLE 或者 多选/MultiImageSelectorActivity.MODE_MULTI)intent.putExtra(MultiImageSelectorActivity.EXTRA_SELECT_MODE, MultiImageSelectorActivity.MODE_MULTI);// 默认选择图片,回填选项(支持String ArrayList)intent.putStringArrayListExtra(MultiImageSelectorActivity.EXTRA_DEFAULT_SELECTED_LIST, defaultDataArray);startActivityForResult(intent, REQUEST_IMAGE);

4 在你的 onActivityResult 方法中接受结果
当没有选择图片直接返回时,最好还应该判断data!=null

  @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        if (requestCode == REQUEST_IMAGE) {                // 获取返回的图片列表(存放的是图片路径)                if(data!=null){                List<String> path = data.getStringArrayListExtra(MultiImageSelector.EXTRA_RESULT);                // 处理你自己的逻辑 ....                Log.d("tag", "" + path);                tv.setText(""+path);                }        }    }
阅读全文
1 0
原创粉丝点击