Skip to content

PictureSelector 2.0 结果回调

Luck edited this page Jan 9, 2022 · 1 revision
    @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:
                    // 图片选择结果回调
                    selectList = PictureSelector.obtainMultipleResult(data);
                    // 例如 LocalMedia 里面返回五种path
                    // 1.media.getPath(); 原图path,但在Android Q版本上返回的是content:// Uri类型
                    // 2.media.getCutPath();裁剪后path,需判断media.isCut();切勿直接使用
                    // 3.media.getCompressPath();压缩后path,需判断media.isCompressed();切勿直接使用
                    // 4.media.getOriginalPath()); media.isOriginal());为true时此字段才有值
                    // 5.media.getAndroidQToPath();Android Q版本特有返回的字段,但如果开启了压缩或裁剪还是取裁剪或压缩路
                       径;注意:.isAndroidQTransform(false);此字段将返回空
                    // 如果同时开启裁剪和压缩,则取压缩路径为准因为是先裁剪后压缩
                    for (LocalMedia media : selectList) {
                        Log.i(TAG, "压缩::" + media.getCompressPath());
                        Log.i(TAG, "原图::" + media.getPath());
                        Log.i(TAG, "裁剪::" + media.getCutPath());
                        Log.i(TAG, "是否开启原图::" + media.isOriginal());
                        Log.i(TAG, "原图路径::" + media.getOriginalPath());
                        Log.i(TAG, "Android Q 特有Path::" + media.getAndroidQToPath());
                        // TODO 可以通过PictureSelectorExternalUtils.getExifInterface();方法获取一些额外的资源信息,
                        如旋转角度、经纬度等信息
                    }
                    break;
            }
        }
    }

   // 从v2.4.5开始新增 Callback回调方式返回结果...

  .forResult(new OnResultCallbackListener() {
       @Override
       public void onResult(List<LocalMedia> result) {
            // 例如 LocalMedia 里面返回五种path
            // 1.media.getPath(); 原图path,但在Android Q版本上返回的是content:// Uri类型
            // 2.media.getCutPath();裁剪后path,需判断media.isCut();切勿直接使用
            // 3.media.getCompressPath();压缩后path,需判断media.isCompressed();切勿直接使用
            // 4.media.getOriginalPath()); media.isOriginal());为true时此字段才有值
            // 5.media.getAndroidQToPath();Android Q版本特有返回的字段,但如果开启了压缩或裁剪还是取裁剪或压缩路
               径;注意:.isAndroidQTransform(false);此字段将返回空
            // 如果同时开启裁剪和压缩,则取压缩路径为准因为是先裁剪后压缩
            // TODO 可以通过PictureSelectorExternalUtils.getExifInterface();方法获取一些额外的资源信息,
               如旋转角度、经纬度等信息

         for (LocalMedia media : result) {
             Log.i(TAG, "是否压缩:" + media.isCompressed());
             Log.i(TAG, "压缩:" + media.getCompressPath());
             Log.i(TAG, "原图:" + media.getPath());
             Log.i(TAG, "是否裁剪:" + media.isCut());
             Log.i(TAG, "裁剪:" + media.getCutPath());
             Log.i(TAG, "是否开启原图:" + media.isOriginal());
             Log.i(TAG, "原图路径:" + media.getOriginalPath());
             Log.i(TAG, "Android Q 特有Path:" + media.getAndroidQToPath());
           }
        }

       @Override
       public void onCancel() {
          Log.i(TAG, "PictureSelector Cancel");
       }

      });