一个让图片和视频多选更简单的框架

PhotoMedia是一个Android自定义图册框架,提供图片和视频的拍照、录像、单选、多选和预览功能,支持Glide加载图片,并有限制多选数量的设定。该项目参考了jeasonlzy的ImagePicker,适用于需要媒体文件选择的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PhotoMedia-master

PhotoMedia-master:android自定义图册,完美解决:

(1)手机中对图片和视频拍照和录像的功能.
(2)实现了图片和视频单选和多选功能.
(3)实现了图片和视频预览功能.
(4)多选限制数量.
(5)使用Glide完美加载图片.
该项目参考了:
  • https://github.com/jeasonlzy/ImagePicker
  • 后期会根据需求去更新项目。
  • 喜欢原作的可以去使用。同时欢迎大家下载体验本项目,如果使用过程中遇到什么问题,欢迎反馈。

1.用法

使用前,对于android studio用户可以添加依赖:

compile 'com.pbq:PickerLib:1.1.0'//指定版本
  或
compile 'com.pbq:PickerLib:+'  //最新版本

当然,你也可以直接依赖library项目:

compile project(':PickerLib')

2.代码参考

(1)在Activity中直接使用图片选择和视频选择

/**
     * 照片选择
     *
     * @param view
     */
    public void choosePhoto(View view) {
        Intent i = new Intent(this, PhotoMediaActivity.class);
        startActivityForResult(i, REQUEST_CODE_GET_PHOTOS);
    }
    /**
     * 视频选择
     *
     * @param view
     */
    public void chooseVideo(View view) {
        Intent i = new Intent(this, PhotoMediaActivity.class);
        i.putExtra("loadType", PhotoVideoDir.Type.VEDIO.toString());
        startActivityForResult(i, REQUEST_CODE_GET_VEDIOS);
    }

(2)重写onActivityResult方法,回调结果

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode) {
            //照相选择返回事件
            case REQUEST_CODE_GET_PHOTOS:
                if (resultCode == RESULT_OK) {
                    //取出选择的相片路径
                    selectedImagesPaths = data.getStringArrayListExtra("pickerPaths");
                    //将选择的图片路径放入文件中
                    //清空文件
                    files.clear();
                    for (int i=0;i<selectedImagesPaths.size();i++){
                        File fileImage=new File(selectedImagesPaths.get(i));
                        files.add(fileImage);
                        Log.i("TGA", selectedImagesPaths.get(i));
                        Log.i("TGA", fileImage+"");
                    }
        Toast.makeText(getApplicationContext(),selectedImagesPaths+"",Toast.LENGTH_SHORT).show();
                }
                Break;
            //录像选择返回事件
            case REQUEST_CODE_GET_VEDIOS:
                if (resultCode == RESULT_OK) {
                    selectedVedioPaths = data.getStringArrayListExtra("pickerPaths");
                    //将选择的视频路径放入文件中
                    //清空视频文件
                    files.clear();
                    for (int i=0;i<selectedVedioPaths.size();i++){
                        File fileVedio=new File(selectedVedioPaths.get(i));
                        files.add(fileVedio);
                        Log.i("TGA", selectedVedioPaths.get(i));
                        Log.i("TGA", fileVedio+"");
                    }
                    //上传
                    Toast.makeText(getApplicationContext(),selectedVedioPaths+"",Toast.LENGTH_SHORT).show();
                }
                break;
        }
    }

3.演示

imageimage
imageimage

联系方式

  • 邮箱地址: 870931145@qq.com
  • QQ: 870931145
  • 个人能力有限,希望大家一起学习一起进步,非常感谢!

我的Github地址,欢迎STAR

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值