public Bitmap getGroupChatContactAvatar(NmsGroupChatContact groupChatContact) { if (groupChatContact == null) { NmsLog.error(TAG, "groupChatContact is invalid!"); return null; } ArrayList<Bitmap> bitmapList = new ArrayList<Bitmap>(); short[] memberIds = groupChatContact.getMemberIds(); if (memberIds != null) { for (int index = 0; index < memberIds.length && bitmapList.size() < 3; ++index) { Bitmap avatar = getAvatarViaEngineContactId(memberIds[index]); if (avatar != null) { bitmapList.add(avatar); } } } else { NmsLog.warn(TAG, "memberIds is null."); } if (bitmapList.size() < 3 && groupChatContact.isAlive()) { // myself bitmap Bitmap avatar = getMyselfAvatarViaSimId(groupChatContact.getSimId()); if (avatar == null) { avatar = mDefaultBitmap; } bitmapList.add(avatar); } bitmapList = fillBitmapList(groupChatContact.getMemberCount(), bitmapList, mDefaultBitmap, mBlankBitmap); Bitmap result = null; if (bitmapList != null && bitmapList.size() == 3) { result = NmsCommonUtils.stitchBitmap(bitmapList.get(0), bitmapList.get(1), bitmapList.get(2)); } return result; }