RxGalleryFinal图片选择器使用说明(和知乎开源图片选择器)

RxGalleryFinal 是一款强大的图片选择器库,支持配置权限、注册Activity和自定义主题颜色。本文将引导您完成配置和使用步骤,包括添加依赖、设置权限和展示使用示例。

附上知乎开源的图片选择器(只是不支持剪裁)http://www.jianshu.com/p/382346bf0aa9

-----------------------------------------------------------------------------------------------------------------------------------------------------------

GitHub:https://github.com/FinalTeam/RxGalleryFinal



一、配置



1、下载或添加依赖



compile 'cn.finalteam.rxgalleryfinal:library:1.0.9'
compile 'com.android.support:recyclerview-v7:24.2.0'
compile 'com.android.support:appcompat-v7:24.2.0'


//支持以下主流图片加载器,开发者自行选择
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.facebook.fresco:fresco:0.12.0'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'


2、配置manifest



(1)添加权限



  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />


(2)注册activity



  <application
      ...
      android:theme="@style/Theme_Light">
  <activity
      android:name="cn.finalteam.rxgalleryfinal.ui.activity.MediaActivity"
      android:screenOrientation="portrait"
      android:exported="true"
      android:theme="@style/Theme_Light.Default"/>
  <activity
      android:name="com.yalantis.ucrop.UCropActivity"
      android:screenOrientation="portrait"
      android:theme="@style/Theme_Light.Default"/>
  </application>


(3)添加主题和颜色

主题路径:RxGalleryFinal/sample/src/main/res/values/themes.xml
颜色路径:RxGalleryFinal/sample/src/main/res/values/colors.xml


二、使用



Code

使用例子simple:

https://github.com/FinalTeam/RxGalleryFinal/blob/master/sample/src/main/java/cn/finalteam/rxgalleryfinal/sample/MainActivity.java


  //自定义方法的单选
  RxGalleryFinal
  .with(context) 
  .image()            //选择图片
  .radio()             //单选

  .crop()              //设置剪裁

.cropAspectRatioOptions(0, new AspectRatio("剪裁", 20, 10)); //单选能剪裁,AspectRatio设置标题和剪裁宽长

  .imageLoader(ImageLoaderType.GLIDE)     //调用glide图片加载器
  .subscribe(new RxBusResultSubscriber<ImageRadioResultEvent>() {           //图片选择后的回调方法(单选要为ImageRadioResultEvent)
      @Override
      protected void onEvent(ImageRadioResultEvent imageRadioResultEvent) throws Exception {     
          //图片选择结果
          String filePath=imageRadioResultEvent.getResult().getOriginalPath();                //获取照片的储存路径
          .....
      }
  })
  .openGallery();







//自定义方法的多选
RxGalleryFinal.with(MainActivity.this)
.image()            //图片格式
.multiple()         //设置多选
.maxSize(8)      //最大选择数
.imageLoader(ImageLoaderType.UNIVERSAL)       //图片加载器
.subscribe(new RxBusResultSubscriber<ImageMultipleResultEvent>() {      //图片选择后的回调方法(单选要为ImageMultipleResultEvent)
      @Override
      protected void onEvent(ImageMultipleResultEvent imageMultipleResultEvent) throws Exception {
         List<MediaBean> list=imageMultipleResultEvent.getResult();      //多个图片得到List<MediaBean>
                  String filePath=list.get(0).getOriginalPath();                                //得到图片的选择路径
      }
      @Override
      public void onCompleted() {
      super.onCompleted();
          Toast.makeText(getBaseContext(), "OVER", Toast.LENGTH_SHORT).show();
      }
}).openGallery();








//得到图片多选的事件
RxGalleryListener.getInstance().setMultiImageCheckedListener(new IMultiImageCheckedListener() {
      @Override
      public void selectedImg(Object t, boolean isChecked) {
           //这个主要点击或者按到就会触发,所以不建议在这里进行Toast
      }
      @Override
      public void selectedImgMax(Object t, boolean isChecked, int maxSize) {
          toast("你最多只能选择" + maxSize + "张图片");
      }
});








//注解诠释
RxGalleryFinal.with(context)
     .image()//图片
     .radio()//单选
     .crop()//裁剪
     .video()//视频
     .imageLoader(ImageLoaderType.GLIDE)
     //里面可以选择主流图片工具  PICASSO  GLIDE  FRESCO UNIVERSAL(ImageLoader)
     .subscribe(rxBusResultSubscriber)
     .openGallery();








    //调用裁剪.RxGalleryFinalApi.getModelPath()为默认的输出路径
    RxGalleryFinalApi.cropScannerForResult(MainActivity.this, RxGalleryFinalApi.getModelPath(), inputImg);






//获取和设置 保存路径
RxGalleryFinalApi.getImgSaveRxCropDirByFile();//得到裁剪路径
RxGalleryFinalApi.getImgSaveRxCropDirByStr();//得到裁剪路径
RxGalleryFinalApi.getImgSaveRxDirByFile();//得到图片路径
RxGalleryFinalApi.getImgSaveRxCropDirByStr();//得到图片路径


//获取和设置 保存路径
//…… setImgSaveXXXXX().
//图片自动会存储到下面,裁剪会自动生成路径;也可以手动设置裁剪的路径;
RxGalleryFinalApi.setImgSaveRxSDCard("dujinyang");






    //自定义裁剪
   rx.cropAspectRatioOptions(0, new AspectRatio("3:3",30, 10))
   .crop()
   .openGallery();






  //4.演示 单选裁剪 并且增加回掉 (裁剪必须在open之前)
  RxGalleryFinalApi.getInstance(this)
     .onCrop(true)//是否裁剪
     .openGalleryRadioImgDefault(new RxBusResultSubscriber() {
             @Override
             protected void onEvent(Object o) throws Exception {
                  Logger.i("只要选择图片就会触发");
             }
      })
     .onCropImageResult(new IRadioImageCheckedListener() {
             @Override
             public void cropAfter(Object t) {
                  Logger.i("裁剪完成");
             }


             @Override
             public boolean isActivityFinish() {
                  Logger.i("返回false不关闭,返回true则为关闭");
                  return true;
             }

     });




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值