Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/FinalTeam/RxGalleryFinal
图片选择库,单选/多选、拍照、裁剪、压缩,自定义。包括视频选择和录制。
https://github.com/FinalTeam/RxGalleryFinal
android du finalteam gallery galleryfinal history image imagecrop java karl-dujinyang pengjianbo photo rx rxgalleryfinal sheep0704 urcop video
Last synced: 3 months ago
JSON representation
图片选择库,单选/多选、拍照、裁剪、压缩,自定义。包括视频选择和录制。
- Host: GitHub
- URL: https://github.com/FinalTeam/RxGalleryFinal
- Owner: FinalTeam
- Created: 2016-04-22T01:41:15.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2022-03-12T04:00:10.000Z (over 2 years ago)
- Last Synced: 2024-06-16T04:51:05.666Z (5 months ago)
- Topics: android, du, finalteam, gallery, galleryfinal, history, image, imagecrop, java, karl-dujinyang, pengjianbo, photo, rx, rxgalleryfinal, sheep0704, urcop, video
- Language: Java
- Homepage: https://github.com/FinalTeam/RxGalleryFinal
- Size: 20.8 MB
- Stars: 2,827
- Watchers: 73
- Forks: 513
- Open Issues: 151
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-github-android-ui - RxGalleryFinal - android图片/视频文件选择器 (图片)
README
# RxGalleryFinal
## 功能描述(JDK1.8)
RxGalleryFinal是一个android图片/视频文件选择器。其支持多选、单选、拍摄和裁剪,主题可自定义,无强制绑定第三方图片加载器。
* [English](https://github.com/FinalTeam/RxGalleryFinal/blob/master/README_English.md)
* [Japanese](https://github.com/FinalTeam/RxGalleryFinal/blob/master/README_Japanese.md)
* [Chinese](https://github.com/FinalTeam/RxGalleryFinal)## 版本描述
[History Issues](https://github.com/FinalTeam/RxGalleryFinal/wiki/RxGalleryFinal-Issues)
[History Version](https://github.com/FinalTeam/RxGalleryFinal/wiki/RxGalleryFinal-Version)
### 待完善
1.视频选择器的回调
2.卡顿问题,可在 Issues 里搜索: #130 【精】觉得卡顿的点我### gradle
New : compile 'cn.finalteam.rxgalleryfinal:library:1.1.3' -> 紧急修复bug .
(Fix #191, add video)参考:[History Version](https://github.com/FinalTeam/RxGalleryFinal/wiki/RxGalleryFinal-Version)
### 1.1.2 特性
* 修复相关bug
* Fix #175 #178### 1.1.1 特性
* 修复相关bug
* #170,#165 ,#167 and fix Image No such file or directory
* 更新Sample代码### 1.0.9 特性
* 修复相关bug - #160
* 增加UCROP的设置
* 更新Sample代码
* RxJava升级## 使用
### 下载或添加依赖implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'androidx.exifinterface:exifinterface:1.1.0'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation 'io.reactivex.rxjava2:rxjava:2.2.15'
implementation 'com.github.yalantis:ucrop:2.2.4'
//支持以下主流图片加载器,开发者自行选择
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'com.facebook.fresco:fresco:2.0.0'
implementation 'com.facebook.fresco:animated-gif:2.0.0'
implementation 'com.github.bumptech.glide:glide:4.10.0'
implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'### 配置manifest
截图:
![image](https://github.com/FinalTeam/RxGalleryFinal/blob/master/screenshots/a1.png)
* 提供了相关的Api
* 请查看MainActivity的示例代码 [查看 Sample 代码](https://github.com/FinalTeam/RxGalleryFinal/blob/master/sample/src/main/java/cn/finalteam/rxgalleryfinal/sample/MainActivity.java)
//自定义方法的使用
onClickZDListener();
//调用图片选择器Api
onClickSelImgListener();
//调用视频选择器Api
onClickSelVDListener();
//调用裁剪Api
onClickImgCropListener();
//手动打开日志。
ModelUtils.setDebugModel(true);* 这里可以配置主题
![image](https://github.com/FinalTeam/RxGalleryFinal/blob/master/screenshots/device-2017-04-11-154816.png)
## Theme
配置Theme请查看sample下的 xml-> TestTheme..
* Code
//自定义方法的单选
RxGalleryFinal
.with(context)
.image()
.radio()
.crop()
.imageLoader(ImageLoaderType.GLIDE)
.subscribe(new RxBusResultSubscriber() {
@Override
protected void onEvent(ImageRadioResultEvent imageRadioResultEvent) throws Exception {
//图片选择结果
.....
}
})
.openGallery();----
//自定义方法的多选
RxGalleryFinal.with(MainActivity.this)
.image()
.multiple()
.maxSize(8)
.imageLoader(ImageLoaderType.UNIVERSAL)
.subscribe(new RxBusResultSubscriber() {
@Override
protected void onEvent(ImageMultipleResultEvent imageMultipleResultEvent) throws Exception {
toast("已选择" + imageMultipleResultEvent.getResult().size() + "张图片");
}
@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;
}
});* 添加权限
* 注册activity
(android.content.Context);
}
#2.rx
-dontwarn io.reactivex.**
-keep io.reactivex.**
-keepclassmembers class io.reactivex.** { *; }
#3.retrolambda
-dontwarn java.lang.invoke.*
#4.support-v4
-keep class android.support.v4.** { *; }
-keep interface android.support.v4.** { *; }
#5.ucrop
-dontwarn com.yalantis.ucrop**
-keep class com.yalantis.ucrop** { *; }
-keep interface com.yalantis.ucrop** { *; }
#6.photoview
-keep class uk.co.senab.photoview** { *; }
-keep interface uk.co.senab.photoview** { *; }
#7.rxgalleryfinal
-keep class cn.finalteam.rxgalleryfinal.ui.widget** { *; }
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-keepclassmembers class **.R$* {
public static ;
}
-keepattributes *Annotation*
-keepclasseswithmembernames class * {
native ;
}
-keepclassmembers public class * extends android.view.View {
void set*(***);
*** get*();
}## Q&A
* 1、出现图片倒立问题,如何解决
* 2、如何压缩图片
* 3、Android 7.0闪退
* 4、授权说明## 联系
如果有紧急事件可联系作者或加Q群:
- Q群号: 218801658
- Q群号: 246231638## Wiki
* [GalleryFinal 问题系列 ](https://github.com/FinalTeam/RxGalleryFinal/wiki)
* [RxGalleryFinal 问题系列](https://github.com/FinalTeam/RxGalleryFinal/wiki/RxGalleryFinal-%E9%97%AE%E9%A2%98%E7%B3%BB%E5%88%97)
* [RxGalleryFinal Version](https://github.com/FinalTeam/RxGalleryFinal/wiki/RxGalleryFinal-Version)
有兴趣的可以关注【Python2048】 公众号
分享技术、灰色产业、职业规划、赚钱之道、逆向破解等趣事……