輕量級圖片選擇庫ImageSelect

ImageSelect

android 經量級選擇圖片框架,支持拍照,獲取相冊圖片,獲取本地視頻,能夠多選,單選android

聲明

此框架功能點有:git

  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/…github

相關文章
相關標籤/搜索