android 聊天气泡第三方UI之BubbleView使用

Posted 孤注一掷 、

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 聊天气泡第三方UI之BubbleView使用相关的知识,希望对你有一定的参考价值。

实现如图效果:

1.引入依赖

implementation 'com.github.xiaohaozi9825:BubbleView:1.0'    //聊天气泡

2.item布局文件中

<pw.xiaohaozi.bubbleview.BubbleView
        android:id="@+id/left_layout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_margin="8dp"
        android:padding="8dp">
        <TextView
            android:id="@+id/left_msg"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#000000"
            android:textSize="17sp" />
    </pw.xiaohaozi.bubbleview.BubbleView>

即达到这种效果

3.属性介绍

//Z轴方向高度
 android:bubbleElevation="dimension"

//子view是否填充到指示器中
 android:bubbleFillIndicator="boolean"

//指示器方向,枚举值:左上右下
 android:bubbleIndicatorDirection="left|top|right|bottom"

//指示器的位置
//centre:居中,start:上边或左边,end:下边或右边
//float:float类型范围在0-1之间,0对应start,0.5对应centre,1对应end
//dimension 0:中间,正数:从开始位置偏移,负数:从结束位置开始偏移
 android:bubbleIndicatorLocation="start|centre|end|float|dimension"

//指示器宽度和高度,指示器与圆角矩形平行的切边平行的边为宽,垂直的边为高
 android:bubbleIndicatorWidth="dimension"
 android:bubbleIndicatorHeight="dimension"

//气泡颜色
 android:bubbleColor="color"

//阴影颜色
 android:bubbleShadowColor="color"

//边线宽度
 android:bubbleStrokeWidth="dimension"

//圆角矩形圆角半径
 android:bubbleRadius="dimension"

部分引用:https://www.jianshu.com/p/24f2b2b61827

4.达到文字达到一定长度自动换行的效果

适配器中

@Override
    public void onBindViewHolder(ViewHolder holder,int position){
        Msg msg=mMsgList.get(position);
       TextPaint paint = holder.leftMsg.getPaint();
       int width1 = (int)(paint.measureText(msg.getContent()));
       Log.i("sss", "onBindViewHolder: "+msg.getContent());
       Log.i("sss", "onBindViewHolder: "+width1);
       int height1 = 17*2;//聊天内容只占一行的情况下,宽度等于字号的两倍
       //如果聊天内容的宽度大于气泡的最大宽度,则让它换行
       if(width1>=bubbleMaxWidth){
           height1  = 34*2*((int)(width1/100)+1);//换行则调整宽度
           width1 = bubbleMaxWidth;
           holder.leftMsg.getLayoutParams().width=width1;
           holder.rightMsg.getLayoutParams().width=width1;
       }
       ...
       ...
}

 

以上是关于android 聊天气泡第三方UI之BubbleView使用的主要内容,如果未能解决你的问题,请参考以下文章

有啥第三方库可以方便的实现iOS的聊天气泡

在 android 聊天气泡中插入 imageview 可调

Android开发学习之路--UI之简单聊天界面

聊天界面之气泡文本cell使用Autolayout

Android:制作聊天气泡点9图

iOS 类似微信,QQ聊天界面的气泡聊天简单实现Demo