功能
- 生成類似釘釘、微信 群聊組合頭像Bitmap
- 可使用圖片資源id、bitmap或者使用url從網路載入,傳入對應陣列即可
- 網路載入時支援執行緒池
- 支援磁碟快取、記憶體快取。(記得申請磁碟快取需要的檔案儲存許可權)
- 對圖片資源進行取樣率壓縮
- 支援子影像的點選事件
- ......
基本用法
Step 1. 新增JitPack倉庫
在專案根目錄下的 build.gradle
中新增倉庫:
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
複製程式碼
Step 2. 新增專案依賴
dependencies {
implementation 'com.github.Othershe:CombineBitmap:1.0.5'
}
複製程式碼
Step 3. 配置
CombineBitmap.init(context)
.setLayoutManager() // 必選, 設定圖片的組合形式,支援WechatLayoutManager、DingLayoutManager
.setSize() // 必選,組合後Bitmap的尺寸,單位dp
.setGap() // 單個圖片之間的距離,單位dp,預設0dp
.setGapColor() // 單個圖片間距的顏色,預設白色
.setPlaceholder() // 單個圖片載入失敗的預設顯示圖片
.setUrls() // 要載入的圖片url陣列
.setBitmaps() // 要載入的圖片bitmap陣列
.setResourceIds() // 要載入的圖片資源id陣列
.setImageView() // 直接設定要顯示圖片的ImageView
// 設定“子圖片”的點選事件,需使用setImageView(),index和圖片資源陣列的索引對應
.setOnSubItemClickListener(new OnSubItemClickListener() {
@Override
public void onSubItemClick(int index) {
}
})
// 載入進度的回撥函式,如果不使用setImageView()方法,可在onComplete()完成最終圖片的顯示
.setProgressListener(new ProgressListener() {
@Override
public void onStart() {
}
@Override
public void onComplete(Bitmap bitmap) {
}
})
.build();
複製程式碼
由於生成的組合Bitmap是矩形的,要實現釘釘的圓形顯示效果,這裡用到了一個可圓形顯示的ImageView控制元件:NiceImageView
更多細節見GitHub:github.com/Othershe/Co…