Android选择图片路径不一致的问题

来源:互联网 发布:淘宝老猪数码坑人 编辑:程序博客网 时间:2024/05/23 11:58

1.场景还原

     在适配的过程中,痛并快乐着!今天又冒出一个适配问题:Android4.4以下手机选择图片正常;4.4以上会偶然出现选择的图片跟返回的图片不一致,我想这就是没有去往上兼容了。

2.知识回顾

  在Android4.4之前,一般选择系统图库会使用以下代码:

Intent intent = new Intent();intent.setType("image/*");intent.setAction(Intent.ACTION_GET_CONTENT);startActivityForResult(intent, REQUEST_CODE_IMAGE);

在4.4之前,一般采用content开头的图片路径;在4.4之后,也有file开头的图片路径,这样就导致了图片路径不一致,所以导致了该种场景。 

3.解决方案

①重新配置action如下:

Intent intent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,"image/*");startActivityForResult(intent, REQUEST_CODE_ALBUM);
②在OnActivityResult中:

 {    if (data.getData() == null) {        ivHeadSet.setImageResource(R.drawable.add);        return;    }    Uri uri = data.getData();    ContentResolver cr = getContentResolver();    /* 获取图片的路径根据uri*/    strImgPath = ImagePathByUri.getPath(this, uri);    //剪裁    startCropImageActivity(strImgPath);
这样就可以兼容4.4以上的Android版本了,完美解决!


1 0
原创粉丝点击