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

MultiImageSelector

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

效果图:

第三方开源库:图片选择MultiImageSelector_第1张图片

使用步骤

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

    1 添加依赖

    在module的build.gradle中添加

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

第三方开源库:图片选择MultiImageSelector_第2张图片

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

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<application>
  
   <activity
       android:configChanges="orientation|screenSize"
       android:name="me.nereo.multi_image_selector.MultiImageSelectorActivity" />
application>

3 调用API

点单调用:

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

详细调用API:

MultiImageSelector.create(Context context)
        .showCamera(boolean) // 是否显示相机. 默认为显示
        .count(int) // 最大选择图片数量, 默认为9. 只有在选择模式为多选时有效
        .single() // 单选模式
        .multi() // 多选模式, 默认模式;
        .origin(ArrayList) // 默认已选择图片. 只有在选择模式为多选时有效
        .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) {
                // 获取返回的图片列表(存放的是图片路径)
                List path = data.getStringArrayListExtra(MultiImageSelectorActivity.EXTRA_RESULT);
                // 处理你自己的逻辑 ....
                Log.d("tag", "" + path);
                tv.setText(""+path);
        }
    }

其它

第三方开源库:图片选择MultiImageSelector
TakePhoto + pickphotoview + Album +Matisse

你可能感兴趣的:(第三方开源库)