Skip to content

chengzichen/KrGallery

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5fbe23c · Aug 7, 2018

History

36 Commits
Aug 18, 2017
Aug 7, 2018
Apr 26, 2017
Aug 14, 2017
May 25, 2017
Apr 20, 2017
Aug 7, 2018
Aug 14, 2017
Apr 20, 2017
Apr 20, 2017
Apr 20, 2017
Apr 20, 2017

Repository files navigation

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 老司机