仿微信的图片和视频选择适配器

来源:互联网 发布:长城防火墙 知乎 编辑:程序博客网 时间:2024/06/05 04:17

GitHub地址:https://github.com/JiangAndroidwork/MyImagePicker

已适配安卓7.0

  • 添加依赖
    在工程的build.gradle文件中添加
    allprojects {    repositories {        jcenter()        maven { url 'https://jitpack.io' }    }}

      在moudle中build.gradle中添加依赖:
compile 'com.github.JiangAndroidwork:MyImagePicker:1.1.9'

  • 基本用法:
    ImagePicker build = new ImagePicker.Builder()                .pickType(ImagePickType.MUTIL) //设置选取类型(拍照ONLY_CAMERA、单选SINGLE、多选MUTIL)                .maxNum(9) //设置最大选择数量(此选项只对多选生效,拍照和单选都是1,修改后也无效)                .needCamera(true) //是否需要在界面中显示相机入口(类似微信那样)                .cachePath(cachePath) //自定义缓存路径(拍照和裁剪都需要用到缓存)                .doCrop(1, 1, 300, 300) //裁剪功能需要调用这个方法,多选模式下无效,参数:aspectX,aspectY,outputX,outputY.needVideo(true)//是否显示视频 设置                .displayer(new GlideImagePickerDisplayer()) //自定义图片加载器,默认是Glide实现的,可自定义图片加载器                .build();              build.start(this, REQUEST_CODE, RESULT_CODE); //自定义RequestCode和ResultCode
    接收数据:
     @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        if (resultCode == RESULT_CODE && data != null) {            //获取选择的图片数据           List<MediaDataBean> resultList = data.getParcelableArrayListExtra(ImagePicker.INTENT_RESULT_DATA);}}

  • 图片列表轮播详情:
    按是否需要下载到本地为条件有两种构造方法:
     第一种,只需要传递三个参数,不需要有下载功能:
       
    ImagePagerActivity.start(MainActivity.this, selectedPhotos, position);
    第二种,传递4个参数,是否需要有缓存图片到本地的功能
    DownImagModel model = ImagePagerActivity.start(MainActivity.this, imageList, imageList.get(position).getPosition(), true);
    默认缓存地址到Pictures目录中如果需要设置缓存路径和名称需要通过引用 model设置参数,并监听回调
    model.setFileName("111.jpg");model.setDownUrl(Environment.getExternalStorageDirectory()+"/hh/"); model.setCallBack(new DownImagCallBack() {        @Override         public void onSuccess(String url) {           Log.i("下载成功==",url);         }         @Override          public void onFail(String message) {             Log.i("下载失败==",message);          }         });
  • 视频播放详情页:
    VideoDetailActivity.start(MainActivity.this,imageBean);


阅读全文
1 0
原创粉丝点击