Android 调用本地相册(视频),解析Cursor(路径、大小等)

<小白记录>

本地调用相册,我这里调用的是视频,调用前也还是要获取权限的,这里就不多写了

Intent intent = new Intent();
intent.setAction(Intent.ACTION_PICK);
intent.setType("video/*");
//intent.setType("image/*");//图片
startActivityForResult(intent, 1);//1是index,在相册回来时,会在onActivityResult中回调,可以知道哪边来的,处理哪一块逻辑

这里是调用本地功能时回调的方法

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
        switch (requestCode) {
            case 1: {
                handleVideoPath(data);//这是我本地方法,解析选择完视频后所需要的处理逻辑,在下面
                break;
            }
            default:
                getTakePhoto().onActivityResult(requestCode, resultCode, data);
                break;
        }
    }
    super.onActivityResult(requestCode, resultCode, data);
}

这是里处理data的方法,解析出来想要的路径及其他内容

public void handleVideoPath(Intent data) {
    Uri uri = data.getData();
    
    //指定解析出来的值,路径和大小,因为我是需要上传文件的,但是也不能过大,所以只要这两个值,需要其他的自行设定,都是在这个数组内设置,这是视频,图片直接更改Video为Image(MediaStore.Image.Media.DATA)
    String[] projection = { MediaStore.Video.Media.DATA, MediaStore.Video.Media.SIZE };
    Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
    cursor.moveToFirst();

    String path = cursor.getString(0); // 图片文件路径
    String size = cursor.getString(1); // 图片大小
    //Log.d("相册地址", "path:"+path + "size:"+size);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值