KrGallery,拍照和选择图片,裁剪,录制视频和选择视频靠它了

KrGallery

Crop , Video, Photos, from Telegram

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

欢迎大家积极start

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.0.3'
}
  • 方式二:

Step 1. 在根目录的gradle文件中配置

    allprojects {
            repositories {
                ...
                 jcenter()
            }
        }

step2 添加依赖:

dependencies {
          compile 'com.dhc.krgallery:gallerylib:1.0.2'
    }

效果

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值