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;
  }
  private void initQuickGroupCard() {
    setContentView(R.layout.quick_group_contact);

    NmsGroupChatContact groupContact = (NmsGroupChatContact) contact;
    short[] members = groupContact.getMemberIds();
    buildGroupMembers(members, groupContact.isAlive());

    TextView tvName = (TextView) this.findViewById(R.id.tv_name);
    tvName.setText(groupContact.getName());

    TextView tvCount = (TextView) this.findViewById(R.id.tv_count);
    tvCount.setText(String.valueOf(groupContact.getMemberCount()));

    Button btnInvite = (Button) this.findViewById(R.id.btn_invite);
    btnInvite.setOnClickListener(
        new OnClickListener() {

          @Override
          public void onClick(View v) {
            // TODO Auto-generated method stub
            addGroupChatMembers();
          }
        });
    Button btnChat = (Button) this.findViewById(R.id.btn_chat);
    btnChat.setOnClickListener(
        new OnClickListener() {

          @Override
          public void onClick(View v) {
            // TODO Auto-generated method stub
            chat();
          }
        });

    Button btnWelcome = (Button) this.findViewById(R.id.btn_welcome);
    btnWelcome.setOnClickListener(
        new OnClickListener() {

          @Override
          public void onClick(View v) {
            // TODO Auto-generated method stub
            chat();
          }
        });
    LinearLayout llWelcome = (LinearLayout) this.findViewById(R.id.ll_group);

    if (groupContact.isAlive() && isActive) {
      btnWelcome.setVisibility(View.GONE);
    } else {
      llWelcome.setVisibility(View.GONE);
      btnWelcome.setVisibility(View.VISIBLE);
    }

    GridView gv = (GridView) this.findViewById(R.id.gv_group_card);

    GroupListAdapter adapter = new GroupListAdapter(this);
    gv.setAdapter(adapter);

    gv.setOnItemClickListener(
        new OnItemClickListener() {

          @Override
          public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
            // TODO Auto-generated method stub
            viewGroupChatInfo();
          }
        });
  }