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使用的主要内容,如果未能解决你的问题,请参考以下文章