Android调用系统相册选择图片,支持小米4云相册

我们两清 提交于 2020-03-09 10:49:49

本博客原地址:http://my.oschina.net/reone/blog/734593

用小米4调用系统相册选择照片时,如果云相册功能开启的话.云相册中的图片也会显示在选择列表中.经过测试,选择到云相册中的图片的话,uri的scheme是file,而不再试content.本文支持云相册的方法就是通过判断scheme来实现的.

调用系统相册

        Intent intent = new Intent(Intent.ACTION_PICK,
                android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        startActivityForResult(intent, yourRequestCode);

重写Activity中onActivityResult方法实现回调

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        //获取图片路径
        if (requestCode == yourRequestCode && resultCode == Activity.RESULT_OK && data != null) {
            Uri localUri = data.getData();
            String scheme = localUri.getScheme();
            String imagePath = "";
            if("content".equals(scheme)){
                String[] filePathColumns = {MediaStore.Images.Media.DATA};
                Cursor c = getContentResolver().query(localUri, filePathColumns, null, null, null);
                c.moveToFirst();
                int columnIndex = c.getColumnIndex(filePathColumns[0]);
                imagePath = c.getString(columnIndex);
            }else if("file".equals(scheme)){//小米4选择云相册中的图片是根据此方法获得路径
                imagePath = localUri.getPath();
            }
            showImage(imagePath);//拿到图片路径后处理
            c.close();
        }
    }

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!