查看原文
其他

针对Android平台的开源图片选择器

TJ TJ君 2022-07-01

大家好,我是TJ

关注TJ君,回复“武功秘籍”免费获取计算机宝典书籍

TJ君将之前发过的各种项目及工具进行了整理,收录到了GitHub项目,欢迎各位小伙伴光临Star,地址如下:https://github.com/Wechat-TJ/TJ-WORLD-FORU

这段时间在家,大家是不是掌握了不少额外的技能?例如烹饪、抢菜、摆拍?

那么其中摆拍这一项,是不是会翻来覆去挑选各种照片呢?那么今天TJ君就给大家介绍一款针对Android平台的图片选择器,PictureSelector

PictureSelector ,支持从相册获取图片、视频、音频&拍照,支持裁剪(单图or多图裁剪)、压缩、主题自定义配置等功能,支持动态获取权限&适配Android 5.0+系统的开源图片选择框架。

功能上看非常的丰富。

先说说怎么引用,可以使用Gradle,也可以是用Maven

repositories {
  google()
  mavenCentral()
}

dependencies {
  // PictureSelector 基础 (必须)
  implementation 'io.github.lucksiege:pictureselector:v3.0.9'

  // 图片压缩 (按需引入)
  implementation 'io.github.lucksiege:compress:v3.0.9'

  // 图片裁剪 (按需引入)
  implementation 'io.github.lucksiege:ucrop:v3.0.9'

  // 自定义相机 (按需引入)
  implementation 'io.github.lucksiege:camerax:v3.0.9'
}
<dependency>
  <groupId>io.github.lucksiege</groupId>
  <artifactId>pictureselector</artifactId>
  <version>v3.0.9</version>
</dependency>

<dependency>
  <groupId>io.github.lucksiege</groupId>
  <artifactId>compress</artifactId>
  <version>v3.0.9</version>
</dependency>

<dependency>
  <groupId>io.github.lucksiege</groupId>
  <artifactId>ucrop</artifactId>
  <version>v3.0.9</version>
</dependency>

<dependency>
  <groupId>io.github.lucksiege</groupId>
  <artifactId>camerax</artifactId>
  <version>v3.0.9</version>
</dependency>

简单再说几个使用示例:

  • 获取图片
PictureSelector.create(this)
   .openGallery(SelectMimeType.ofImage())
   .setImageEngine(GlideEngine.createGlideEngine())
   .forResult(new OnResultCallbackListener<LocalMedia>() {
      @Override
      public void onResult(ArrayList<LocalMedia> result) {

      }

      @Override
      public void onCancel() {

      }
});
  • 使用系统相册
PictureSelector.create(this)
     .openSystemGallery(SelectMimeType.ofImage())
     .forResult(new OnResultCallbackListener<LocalMedia>() {
        @Override
        public void onResult(ArrayList<LocalMedia> result) {

        }

        @Override
        public void onCancel() {

        }
});
  • 预览图片
PictureSelector.create(this)
    .openPreview()
    .setImageEngine(GlideEngine.createGlideEngine())
    .setExternalPreviewEventListener(new OnExternalPreviewEventListener() {
       @Override
       public void onPreviewDelete(int position) {

       }

        @Override
       public boolean onLongPressDownload(LocalMedia media) {
           return false;
       }
    }).startActivityPreview(position, true"data");
  • 使用图片压缩
.setCompressEngine(new CompressFileEngine() {
   @Override
   public void onStartCompress(Context context, ArrayList<Uri> source, OnKeyValueResultCallbackListener call){
                                    
   }
});

最后看下实际的效果吧,觉得不错的话,赶紧来获取地址吧~


点击下方卡片,关注公众号“TJ君

回复“图片选择2022”,获取仓库地址

关注我,每天了解一个牛x、好用、有趣的东东


往期推荐

tmagic-editor 页面可视化平台

可能是世界上最快、最先进的密码破解程序!

支持Python3、JavaScript、Shell、TypeScript 的定时任务管理面板项目


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存