功能
- 生成類似釘釘、微信 群聊組合頭像Bitmap
- 可使用圖片資源id、bitmap或者使用url從網(wǎng)絡(luò)加載,傳入對(duì)應(yīng)數(shù)組即可
- 網(wǎng)絡(luò)加載時(shí)支持線程池
- 支持磁盤緩存、內(nèi)存緩存。(記得申請(qǐng)磁盤緩存需要的文件存儲(chǔ)權(quán)限)
- 對(duì)圖片資源進(jìn)行采樣率壓縮
- 支持子圖像的點(diǎn)擊事件
- ......
基本用法
Step 1. 添加JitPack倉庫
在項(xiàng)目根目錄下的 build.gradle 中添加倉庫:
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
Step 2. 添加項(xiàng)目依賴
dependencies {
implementation 'com.github.Othershe:CombineBitmap:1.0.5'
}
Step 3. 配置
CombineBitmap.init(context)
.setLayoutManager() // 必選, 設(shè)置圖片的組合形式,支持WechatLayoutManager、DingLayoutManager
.setSize() // 必選,組合后Bitmap的尺寸,單位dp
.setGap() // 單個(gè)圖片之間的距離,單位dp,默認(rèn)0dp
.setGapColor() // 單個(gè)圖片間距的顏色,默認(rèn)白色
.setPlaceholder() // 單個(gè)圖片加載失敗的默認(rèn)顯示圖片
.setUrls() // 要加載的圖片url數(shù)組
.setBitmaps() // 要加載的圖片bitmap數(shù)組
.setResourceIds() // 要加載的圖片資源id數(shù)組
.setImageView() // 直接設(shè)置要顯示圖片的ImageView
// 設(shè)置“子圖片”的點(diǎn)擊事件,需使用setImageView(),index和圖片資源數(shù)組的索引對(duì)應(yīng)
.setOnSubItemClickListener(new OnSubItemClickListener() {
@Override
public void onSubItemClick(int index) {
}
})
// 加載進(jìn)度的回調(diào)函數(shù),如果不使用setImageView()方法,可在onComplete()完成最終圖片的顯示
.setProgressListener(new ProgressListener() {
@Override
public void onStart() {
}
@Override
public void onComplete(Bitmap bitmap) {
}
})
.build();
由于生成的組合Bitmap是矩形的,要實(shí)現(xiàn)釘釘?shù)膱A形顯示效果,這里用到了一個(gè)可圓形顯示的ImageView控件:NiceImageView
更多細(xì)節(jié)見GitHub:https://github.com/SheHuan/CombineBitmap