PictureSelector

相信大家项目中大多都有图片上传功能,这里我也分享一个很强大的选择器-PictureSelector,包含了图片选择和视频选择

引入部分,在build.gradle里加入:

/**
 * 多图选择,包含PhotoView,glide
 */
compile 'com.github.LuckSiege.PictureSelector:picture_library:v2.0.4'

 

代码部分 跳转进入多图或多视频,音频的选择器页面的自定义

//相册
gallery.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        // 进入相册 以下是例子:不需要的api可以不写
        PictureSelector.create(mActivity)
                .openGallery(chooseMode)// 全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()、音频.ofAudio()
                .theme(R.style.picture_style)// 主题样式设置 具体参考 values/styles   用法:                R.style.picture.white.style
                .maxSelectNum(maxSelectNum)// 最大图片选择数量
                .minSelectNum(1)// 最小选择数量
                .imageSpanCount(4)// 每行显示个数
                .selectionMode(PictureConfig.MULTIPLE)// 多选 or 单选
                .isCamera(false)
                .previewImage(false)// 是否可预览图片
                .previewVideo(false)// 是否可预览视频
                .compressGrade(Luban.THIRD_GEAR)// luban压缩档次,默认3档 Luban.FIRST_GEAR、Luban.CUSTOM_GEAR
                .enableCrop(false)// 是否裁剪
                .compress(true)// 是否压缩
                .glideOverride(160, 160)// glide 加载宽高,越小图片列表越流畅,但会影响列表图片浏览的清晰度
                .isGif(false)// 是否显示gif图片
                .freeStyleCropEnabled(true)// 裁剪框是否可拖拽
                .circleDimmedLayer(false)// 是否圆形裁剪
                .showCropFrame(false)// 是否显示裁剪矩形边框 圆形裁剪时建议设为false
                .showCropGrid(false)// 是否显示裁剪矩形网格 圆形裁剪时建议设为false
                .openClickSound(false)// 是否开启点击声音
                .selectionMedia(selectList)// 是否传入已选图片
                .forResult(PictureConfig.CHOOSE_REQUEST);//结果回调onActivityResult code

    }
});

 

这里粘贴上部分选择的文件本地地址怎么获取的截图

PictureSelector_第1张图片

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
        switch (requestCode) {
            case PictureConfig.CHOOSE_REQUEST:
                if (isHeadPort) {
                    // 图片选择结果回调
                    List localMedias = PictureSelector.obtainMultipleResult(data);
                    if (localMedias.isEmpty()) {
                        return;
                    }
                    KLog.a(localMedias.toString());
                    for (LocalMedia localMedia : localMedias) {
                        mPath = localMedia.getCompressPath();
                        GlideUtil.displayCircle(ivEditUserInfoHeadPortrait, mPath);
                        editUserInfoPresenter.updateHeadPortrait(mPath, userInfo.getId());//这里本地图片上传到自己的服                                 务器
                    }

                            }

                          break;

             }

}

你可能感兴趣的:(PictureSelector)