轻量级图片选择库ImageSelect

轻量级图片选择库ImageSelect

Android小彩虹2021-08-20 1:45:35410A+A-

ImageSelect

android 经量级选择图片框架,支持拍照,获取相册图片,获取本地视频,可以多选,单选

声明

此框架功能点有:

  1. 新增对图片列表展示的个数;
  2. 将图片的加载框架默认不处理,需要自己去实现IEngine接口来实现图片加载,详情查看demo里面的GlideEngine.kt类;
  3. 新增多图选择时,点击图片进入产看图片模式,方便预览;
  4. 集成5.0以上权限处理问题;
  5. 支持Androidx;
  6. 支持视频加载展示,优化了api接口调用。

效果

列表效果

图片列表展示

图片详情

多图模式下单张图片展示

Get it

  • step1: add to your project build.gradle
allprojects {
    repositories {
        maven { url "https://jitpack.io" }
        jcenter()
        mavenCentral()
        google()
    }
}
  • step2: Add the dependency
implementation 'com.github.JackLiaoJH:ImageSelect:1.2.0'

使用

初始化

// 实现IEngine接口,如glide加载
class GlideEngine : IEngine {
    override fun loadImage(imageView: ImageView, uiConfig: MediaUiConfigVo) {
        Glide.with(imageView)
                .load(uiConfig.path)
                .placeholder(uiConfig.placeholderResId)
                .error(uiConfig.errorResId)
                .override(uiConfig.width, uiConfig.height)
                .centerCrop()
                .into(imageView)
    }
}

//在Application里面初始化框架图片加载逻辑:
override fun onCreate() {
    super.onCreate()
    ImageSelector.setImageEngine(GlideEngine())
}

简单使用

//打开照片列表
 ImageSelector.startImageAction(
    this, IMAGE_CODE, MediaSelectConfig.Builder()
        .setShowCamera(true) //是否展示打开摄像头拍照入口,只针对照片,视频列表无效
        .setOpenCameraOnly(isOpneCameraOnly) //是否只是打开摄像头拍照而已
        .setOriginData(mSelectPath) //已选择图片地址
        .setMaxCount(9)//选择最大集合,默认9
        .setImageSpanCount(4) //自定义列表展示个数,默认3
        .setPlaceholderResId(R.mipmap.ic_launcher) //预览图
        .build()
    )

//打开视频列表
 ImageSelector.startVideoAction(
    this, IMAGE_CODE, MediaSelectConfig.Builder()
        .setOriginData(mSelectPath) //已选择图片地址
        .setImageSpanCount(4) //自定义列表展示个数,默认3
        .build()
    )

获取结果,重写onActivityResult()方法

 override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == REQUEST_IMAGE) {
            if (resultCode == Activity.RESULT_OK) {
                mSelectPath = ImageSelector.getSelectResults(data)
                Log.e("ImageSelect", "结果: $mSelectPath")
            }
        }
    }

项目地址:github.com/JackLiaoJH/…

点击这里复制本文地址 以上内容由权冠洲的博客整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

支持Ctrl+Enter提交

联系我们| 本站介绍| 留言建议 | 交换友链 | 域名展示 | 支付宝红包
本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除

权冠洲的博客 © All Rights Reserved.  Copyright quanguanzhou.top All Rights Reserved
苏公网安备 32030302000848号   苏ICP备20033101号-1
本网站由 提供CDN/云存储服务

联系我们