如何在聊天适配器中标记特定的聊天气泡

How to mark specific chat bubble in Chat Adapter

我有一个群聊,我想标记一条特定的消息(那些在 isProducertrue 时发送的消息)。问题是它把所有的消息都标记在一起了…… 这是我的 Adapter 代码:

if(customer_id.equals(message.getUserId()))
            isMe = true;
        if(message.getUserId().equals(producer_id))
            isProducer = true;

        if (isMe) {
            holder.imageRight.setVisibility(View.VISIBLE);
            holder.imageLeft.setVisibility(View.GONE);
            holder.body.setGravity(Gravity.CENTER_VERTICAL | Gravity.RIGHT);

        } else {
            holder.imageLeft.setVisibility(View.VISIBLE);
            holder.imageRight.setVisibility(View.GONE);
            holder.body.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
        }

        holder.body.setText(message.getBody());
        if (isProducer) {
            holder.body.setTypeface(null, Typeface.BOLD);
        }

谢谢!

if(customer_id.equals(message.getUserId()))
            isMe = true;
        if(message.getUserId().equals(producer_id))
            isProducer = true;

        if (isMe) {
            holder.imageRight.setVisibility(View.VISIBLE);
            holder.imageRight.setbackground(R.drawable.rightimg);
            holder.imageLeft.setVisibility(View.GONE);
            holder.body.setGravity(Gravity.CENTER_VERTICAL | Gravity.RIGHT);

        } else {
            holder.imageLeft.setVisibility(View.VISIBLE);
            holder.imageRight.setbackground(R.drawable.leftimg);
            holder.imageRight.setVisibility(View.GONE);
            holder.body.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
        }

        holder.body.setText(message.getBody());
        if (isProducer) {
            holder.body.setTypeface(null, Typeface.BOLD);
        }

}

你可以使用 R.drawable.leftimg 并且 R.drawable.rightimg 应该是 ninepatch 图片

试试这个

isMe = customer_id.equals(message.getUserId()); 
    isProducer = message.getUserId().equals(producer_id);

    if (isMe) {
        holder.imageRight.setVisibility(View.VISIBLE);
        holder.imageLeft.setVisibility(View.GONE);
        holder.body.setGravity(Gravity.CENTER_VERTICAL | Gravity.RIGHT);

    } else {
        holder.imageLeft.setVisibility(View.VISIBLE);
        holder.imageRight.setVisibility(View.GONE);
        holder.body.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
    }

    holder.body.setText(message.getBody());
    if (isProducer) {
        holder.body.setTypeface(null, Typeface.BOLD);
    } else {
        holder.body.setTypeface(null, Typeface.NORMAL); // Or anything else
     }