Android 實現IM多人員組合的群組頭像

2021-08-13 15:13:58 字數 2315 閱讀 4165

說明:

一、自定義整體頭像的viewgroup,計算並儲存寬高(重寫onmeasure):

@override

protected void onmeasure(int widthmeasurespec, int heightmeasurespec)

private int getwidth(int measurespec) else if (specmode == measurespec.at_most)

return width;

}private int getheight(int measurespec) else if (specmode == measurespec.at_most)

return height;

}

二、布局子頭像的view(重寫onlayout,對每個子頭像進行布局):

@override

protected void onlayout(boolean changed, int l, int t, int r, int b)

private void layoutchild()

for (int i = 0; i < mimgsize; i++)

}

三、載入並顯示各子頭像(使用glide載入並顯示每個子頭像)

private void showimage(context context, imageview iv, string url) 

glide.with(context).load(url)

.diskcachestrategy(diskcachestrategy.all)

.dontanimate()

.placeholder(r.mipmap.user_default_icon)

.error(r.mipmap.user_default_icon)

.into(iv);

}

到此多組合頭像已經完成,不過想要圈形的還需要進行以下步奏

四、裁剪整個群頭像為圓形(重寫dispatchdraw):

@override

protected void dispatchdraw(canvas canvas)

/*** 繪製各頭像間隔線

* @param canvas

*/private void drawgroupview(canvas canvas)

/*** 繪製直線

*/private void drawline(canvas canvas, float point1, float point2)

五、暴露公共方法供外部呼叫:

/**

* 設定url集合

** @param imgs url集合

*/public void setimages(listimgs)

if (imgs.size() > max_size)

removeallviews();

mimgurls = imgs;

mimgsize = imgs.size();

for (int i = 0; i < mimgsize; i++)

addview(v, generatedefaultlayoutparams());

}requestlayout();

}/**

* 設定單個url

** @param img url

*/public void setimageurl(string img)

/*** 生成乙個頭像布局

*/private imageview getitemview(int position)

六、使用:

1.寫乙個布局檔案放自定義群組頭像控制項:

<?xml version="1.0" encoding="utf-8"?>

2.**中群組頭像控制項顯示:

@bindview(r2.id.cv_head)

public headview mheadcv;

private string img_url_list = ;

private void showimage()

mheadcv.setimageurls(list);

}

融雲IM使用小結 Android

首先按照融雲官方文件,接入sdk,基於imkit,具體接入就不多廢話啦啦 此時androidmanifest.xml在遇到第乙個問題點 1 android.support.v4.content.fileprovider衝突 解決方案 package com.android.chat import a...

Android 環信IM拓展訊息

public class linkconstant在easemessageadapter中定義兩個常量 public static final int message type recv linkinfoext call 14 public static final int message type...

Android XMPP實現IM 群聊功能

時間倉促,在此僅做一些流水式的記錄,便於後面查詢。主要的 片段如下 private multiuserchat muc null private boolean ishistory false private int count 0 private final int receive 1 priva...