当前位置:   article > 正文

从0开始认识android(十):选择照片或视频的Intent_android data.getdata()判断照片还是视频

android data.getdata()判断照片还是视频

1、启动相册

static final int REQUEST_IMAGE_GET = 1;

    public void selectImageVideo() {
        //4.3以上的action,该action会将文件副本导入我们的应用,即我们看到的是副本
//        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        //4.4以上的action,该action不会将文件副本导入我们的应用,即我们看到的是源文件
        //只显示照片供选择,可以多选
        //        intent.setType("image/*");
        //只显示视频供选择,可以多选
        //        intent.setType("video/*");
        //同时显示照片和视频供选择,此时Intent.EXTRA_ALLOW_MULTIPLE不能为true,即不支持多个文件
        intent.setType("*/*");
        ArrayList<String> mimes = new ArrayList<>();
        mimes.add("image/*");
        mimes.add("video/*");
        intent.putExtra(Intent.EXTRA_MIME_TYPES, mimes);
        //4.3以上的设备才支持Intent.EXTRA_ALLOW_MULTIPLE,是否可以一次选择多个文件
        intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, false);
        //返回的文件是否必须存在于设备上,而不是需要从远程服务下载的,用于解决用户选中的是云端文件时的问题
        intent.putExtra(Intent.EXTRA_LOCAL_ONLY, false);
        if (intent.resolveActivity(getPackageManager()) != null) {
            startActivityForResult(intent, REQUEST_IMAGE_GET);
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

2、解析选择结果

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == RESULT_OK) {
            switch (requestCode) {
                case REQUEST_IMAGE_GET:
                    ClipData clipData = data.getClipData();
                    if (clipData == null) {
                        //用户只选择了一个文件
                        String uriStr = data.getDataString();
                        //判断用户选择的是照片还是视频
                        if (uriStr.contains("image")) {
                            Uri fullPhotoUri = data.getData();
                            mImageView.setImageURI(fullPhotoUri);
                        } else if (uriStr.contains("VIDEO")) {
                            //TODO 显示视频
                        }
                    } else {
                        //用户选择了多个文件
                        Uri firstUri = clipData.getItemAt(0).getUri();
                        String uriStr = firstUri.toString();
                        //判断用户选择的是照片还是视频
                        if (uriStr.contains("image")) {
                            mImageView.setImageURI(firstUri);
                        } else if (uriStr.contains("VIDEO")) {
                            //TODO 显示视频
                        }
                    }
                    break;

                default:
                    break;
            }
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/175248
推荐阅读
相关标签
  

闽ICP备14008679号