Android 仿釘釘、微信 群聊組合頭像

功能

  • 生成類似釘釘、微信 群聊組合頭像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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,094評(píng)論 25 709
  • 太長(zhǎng)了,還是轉(zhuǎn)載吧...今天在看博客的時(shí)候,無意中發(fā)現(xiàn)了@Trinea在GitHub上的一個(gè)項(xiàng)目Android開源...
    龐哈哈哈12138閱讀 20,394評(píng)論 3 283
  • 關(guān)于生命的意義! 在于以生命特有的方式賦予其意義! 至于人,人在于直立行走, 一個(gè)直立便完成了人的意義! 簡(jiǎn)單而不簡(jiǎn)單!
    縱情嬉戲天地間閱讀 181評(píng)論 0 0
  • 如果你不會(huì)表達(dá)情感,你就會(huì)找一個(gè)表達(dá)特別強(qiáng)的。缺啥補(bǔ)啥。因?yàn)樗唤≌?,而?huì)表達(dá)的你就會(huì)主動(dòng)和他溝通。 當(dāng)你真正了解...
    林玉珍閱讀 194評(píng)論 0 1
  • 一、簡(jiǎn)介: 說說主線程向子線程發(fā)送消息,如果handler是在主線程中創(chuàng)建,那沒什么好說的,主線程會(huì)自動(dòng)創(chuàng)建Loo...
    萬戶猴閱讀 2,629評(píng)論 1 4

友情鏈接更多精彩內(nèi)容