Android 仿微信多张图片选择器,适配android10系统,open failed: EACCES (Permission denied)

实现效果

 

 

只需引入模块,比起依赖,更方便自定义

implementation project(':imagepicker')
//图片加载
implementation 'com.github.bumptech.glide:glide:4.11.0'

初始化即可使用

private void initImagePicker() {
    ImagePicker imagePicker = ImagePicker.getInstance();
    imagePicker.setImageLoader(new GlideImageLoader());   //设置图片加载器
    imagePicker.setShowCamera(true);                      //显示拍照按钮
    imagePicker.setCrop(true);                           //允许裁剪(单选才有效)
    imagePicker.setSaveRectangle(true);                   //是否按矩形区域保存
    imagePicker.setSelectLimit(8);              //选中数量限制
    imagePicker.setStyle(CropImageView.Style.RECTANGLE);  //裁剪框的形状
    imagePicker.setFocusWidth(800);                       //裁剪框的宽度。单位像素(圆形自动取宽高最小值)
    imagePicker.setFocusHeight(800);                      //裁剪框的高度。单位像素(圆形自动取宽高最小值)
    imagePicker.setOutPutX(1000);                         //保存文件的宽度。单位像素
    imagePicker.setOutPutY(1000);                         //保存文件的高度。单位像素
}

private void initre() {
    mRecyclerView.setLayoutManager(new GridLayoutManager(this, 4));
    evaluateAdapter = new EvaluateAdapter(this);
    mRecyclerView.setAdapter(evaluateAdapter);
    evaluateAdapter.setClickListener(new EvaluateAdapter.ClickListener() {
        @Override
        public void add(int position) {

            Intent picture = new Intent(WxSelectPicActivity.this, ImageGridActivity.class);
            picture.putExtra(ImageGridActivity.EXTRAS_IMAGES, selectImage);
            startActivityForResult(picture, IMAGE_PICKER);
        }

        @Override
        public void preview(int position) {
            Intent intentPreview = new Intent(WxSelectPicActivity.this, ImagePreviewDelActivity.class);
            intentPreview.putExtra(ImagePicker.EXTRA_IMAGE_ITEMS, (ArrayList<ImageItem>) evaluateAdapter.getData());
            intentPreview.putExtra(ImagePicker.EXTRA_SELECTED_IMAGE_POSITION, position);
            intentPreview.putExtra(ImagePicker.EXTRA_FROM_ITEMS, true);
            startActivityForResult(intentPreview, REQUEST_CODE_PREVIEW);
        }
    });
}

 

回调显示已选中图片

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == ImagePicker.RESULT_CODE_ITEMS) {
        if (data != null && requestCode == IMAGE_PICKER) {
            ArrayList<ImageItem> images = (ArrayList<ImageItem>) data.getSerializableExtra(ImagePicker.EXTRA_RESULT_ITEMS);
            selectImage.clear();
            selectImage.addAll(images);
            evaluateAdapter.setNewData(images);
        }
    } else if (resultCode == ImagePicker.RESULT_CODE_BACK) {
        if (data != null && requestCode == REQUEST_CODE_PREVIEW) {
            ArrayList<ImageItem> images = (ArrayList<ImageItem>) data.getSerializableExtra(ImagePicker.EXTRA_IMAGE_ITEMS);
            selectImage.clear();
            selectImage.addAll(images);
            evaluateAdapter.setNewData(images);
        }
    }
}

已适配android10最新系统 

实现demo:https://download.csdn.net/download/meixi_android/13729710

 

open failed: EACCES (Permission denied) 

解决方法

application添加
android:requestLegacyExternalStorage="true"

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值