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

MultiImageSelector

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

效果图:

这里写图片描述

使用步骤

  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'
    ...
}

这里写图片描述

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 Activity
MultiImageSelector.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) {
                // 获取返回的图片列表(存放的是图片路径)
                List<String> path = data.getStringArrayListExtra(MultiImageSelectorActivity.EXTRA_RESULT);
                // 处理你自己的逻辑 ....
                Log.d("tag", "" + path);
                tv.setText(""+path);
        }
    }

其它

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

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值