Crop , Video, Photos, from Telegram
一个集拍照和选择图片,裁剪,录制视频和选择视频的强大且流畅简洁的库。
KrGallery摘取于Telegram,基于@TelegramGallery开发,快速,高效,低耗,轻量级,使用简单。
Step 1. 在根目录的gradle文件中配置
Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
step2 添加依赖:
dependencies {
compile 'com.github.chengzichen:KrGallery:v1.03'
}
Step 1. 在根目录的gradle文件中配置
allprojects {
repositories {
...
jcenter()
}
}
step2 添加依赖:
dependencies {
compile 'com.dhc.krgallery:gallerylib:1.0.3'
}
单选(type:GalleryConfig.SELECT_PHOTO)
GalleryHelper
.with(MainActivity.this) //Activity or Fragment
.type(GalleryConfig.SELECT_PHOTO) //选择类型
.requestCode(12) //startResultActivity requestcode 自己定义
.singlePhoto() //选择单张图片
.execute();
多选(type:GalleryConfig.SELECT_PHOTO)
GalleryHelper
.with(MainActivity.this) //Activity or Fragment
.type(GalleryConfig.SELECT_PHOTO) //选择类型
.requestCode(12) //startResultActivity requestcode 自己定义
.limitPickPhoto(9) //图片选择张数
.execute();
需要裁剪图片
String outputPath = StorageUtil.getWritePath(StorageUtil.get32UUID() + ".jpg", StorageType.TYPE_TEMP);//定义裁剪图片输出在sdcard的位置
GalleryHelper
.with(MainActivity.this) //Activity or Fragment
.type(GalleryConfig.SELECT_PHOTO) //选择类型
.requestCode(12) //startResultActivity requestcode 自己定义
.singlePhoto() //选择单张图片
.isNeedCropWithPath(outputPath) //需要裁剪并输出图片的路径,没有传入时返回数据为byte[]
.execute();
拍照
GalleryHelper
.with(MainActivity.this) //Activity or Fragment
.type(GalleryConfig.TAKE_PHOTO) //选择类型,拍照
.requestCode(12) //startResultActivity requestcode 自己定义
.execute();
需要裁剪图片
outputPath = StorageUtil.getWritePath(StorageUtil.get32UUID() + ".jpg", StorageType.TYPE_TEMP);
GalleryHelper
.with(MainActivity.this) //Activity or Fragment
.type(GalleryConfig.TAKE_PHOTO) //选择类型
.isNeedCropWithPath(outputPath) //需要裁剪并输出图片的路径,没有传入时返回数据为byte[]
.requestCode(12) //startResultActivity requestcode 自己定义
.execute();
onActivityResult
在Acitivity 或者Fragment 中onActivityResult 方法
String path = dataIntent.getStringExtra(GalleryActivity.PHOTOS);
注意 : 需要裁剪并输出图片的路径,没有传入时返回数据为byte[]
byte[] datas =dataIntent.getByteArrayExtra(GalleryActivity.DATA);
GalleryHelper
.with(MainActivity.this) //Activity or Fragment
.type(GalleryConfig.RECORD_VEDIO)//选择类型
.requestCode(12) //startResultActivity requestcode 自己定义
.limitRecordTime(10) //定义录制视频时间
.limitRecordSize(10) //定义录制视频时间
.execute();
GalleryHelper
.with(MainActivity.this) //Activity or Fragment
.type(GalleryConfig.SELECT_VEDIO)//Activity or Fragment
.requestCode(12) //startResultActivity requestcode 自己定义
.isSingleVedio() //是否是单选视频
.execute();
在Acitivity 或者Fragment 中onActivityResult 方法
String path = data.getStringExtra(GalleryActivity.VIDEO);
1. with() //Activity or Fragment
2. type(int type)
1. GalleryConfig.SELECT_PHOTO //选择图片
2. GalleryConfig.TAKE_PHOTO //拍照
3. GalleryConfig.RECORD_VEDIO //录制视频
4. GalleryConfig.SELECT_VEDIO //选择单个视频
5. GalleryConfig.TAKEPHOTO_RECORDVEDIO //拍照和录制视频
3. requestCode(int code) //startResultActivity requestcode 自己定义
4. isSingleVedio() //选择单个视频,必须调用方法
5. isNeedCropWithPath() //进行裁剪图片 返回一个传入路径值
6. isNeedCrop() //需要裁剪图片 这将返回一个 byte[] data数据类型
7. selectVedioWithMimeTypes() //filter of media type, based on MimeType standards:{http://www.w3school.com.cn/media/media_mimeref.asp}<Li>eg:new string[]{"image/gif","image/jpeg"}
8. hintOfPick() //hint of Toast when limit is reached
9. singlePhoto() //选择单张照片
10. limitPickPhoto(int) //hint of Toast when limit is reached
11. limitRecordTime(int) //限制视频录制的时间
11. execute()
github: @chengzichen
博客 : 邓浩宸的博客
@XDroid 老司机