/KrGallery

Crop , Video, Photos, from Telegram

Primary LanguageJavaGNU General Public License v2.0GPL-2.0

KrGallery

Crop , Video, Photos, from Telegram

一个集拍照和选择图片,裁剪,录制视频和选择视频的强大且流畅简洁的库。

KrGallery摘取于Telegram,基于@TelegramGallery开发,快速,高效,低耗,轻量级,使用简单。

功能

  • 快速,高效,低耗
  • 简易的整合,轻量级
  • 基本没有依赖于任何的三方库
  • 集拍照,选择图片,裁剪,录制视频和选择视频为一体

安装

Download

  • 方式一:

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'
	}

效果

Image text Image text Image text Image text

用途

选择图片

  • 单选(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);

注意

  • 需要裁剪并输出图片的路径,没有传入时返回数据为byte[]
  • 选取多张图片时裁剪只对第一张照片有效
  • 选着视频目前支持单个视频

API说明

  • GalleryHelper

      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()
    

TODO

  • 修改部分样式
  • 自定义主题
  • 视频的编辑
  • 图片的编辑
  • 提供压缩
  • 优化代码

作者

感谢

@Telegram

@TelegramGallery

友情链接

@XDroid 老司机