-
Notifications
You must be signed in to change notification settings - Fork 2.8k
TUIKit Android修改界面样式 聊天界面 消息区域
whalehe edited this page Jul 15, 2019
·
5 revisions
MessageLayout继承自RecyclerView,这里提供了方法可以修改聊天背景、气泡、文字、是否显示昵称等,更多可以参考链接,这里我们介绍一些常见的用法:
MessageLayout作为View的一个子类,可以自己设置背景,像这样:
// 从ChatLayout里获取MessageLayout
MessageLayout messageLayout = layout.getMessageLayout();
////// 设置聊天背景 //////
messageLayout.setBackground(new ColorDrawable(0xB0E2FF00));
TUIKit
的界面在显示用户时,会从用户资料中读取头像地址并显示。如果用户没有设置头像,会显示默认头像:如果对头像有更多要求,可以按照如下设置:
// 从ChatLayout里获取MessageLayout
MessageLayout messageLayout = layout.getMessageLayout();
////// 设置头像 //////
// 设置默认头像,默认与朋友与自己的头像相同
messageLayout.setAvatar(R.drawable.ic_chat_input_file);
// 设置头像圆角,不设置则默认不做圆角处理
messageLayout.setAvatarRadius(50);
// 设置头像大小
messageLayout.setAvatarSize(new int[]{48, 48});
气泡有对方的也有自己的,左边为对方的气泡,右边为自己的气泡:
// 从ChatLayout里获取MessageLayout
MessageLayout messageLayout = layout.getMessageLayout();
// 设置自己聊天气泡的背景
messageLayout.setRightBubble(context.getResources().getDrawable(R.drawable.chat_opposite_bg));
// 设置朋友聊天气泡的背景
messageLayout.setLeftBubble(context.getResources().getDrawable(R.drawable.chat_self_bg));
左边和右边昵称的大小与字体颜色保持一致
// 从ChatLayout里获取MessageLayout
MessageLayout messageLayout = layout.getMessageLayout();
////// 设置昵称样式(对方与自己的样式保持一致)//////
messageLayout.setNameFontSize(12);
messageLayout.setNameFontColor(0x8B5A2B00);
聊天内容的字体大小双方保持一致,但是字色可能因为气泡的颜色而必须有所不同,所以提供了两个接口设置:
// 从ChatLayout里获取MessageLayout
MessageLayout messageLayout = layout.getMessageLayout();
// 设置聊天内容字体字体大小,朋友和自己用一种字体大小
messageLayout.setChatContextFontSize(15);
// 设置自己聊天内容字体颜色
messageLayout.setRightChatContentFontColor(0xA9A9A900);
// 设置朋友聊天内容字体颜色
messageLayout.setLeftChatContentFontColor(0xA020F000);
当两条消息的时间间隔超过5分钟时,会插入一条时间线,这个时间线的样式也是可以设置的:
// 从ChatLayout里获取MessageLayout
MessageLayout messageLayout = layout.getMessageLayout();
// 设置聊天时间线的背景
messageLayout.setChatTimeBubble(new ColorDrawable(0x8B691400));
// 设置聊天时间的字体大小
messageLayout.setChatTimeFontSize(20);
// 设置聊天时间的字体颜色
messageLayout.setChatTimeFontColor(0xEE00EE00);
群聊时会有某人加入群聊或者退群等提示消息,该消息也可以单独设置,默认与聊天时间线样式一致。
// 从ChatLayout里获取MessageLayout
MessageLayout messageLayout = layout.getMessageLayout();
// 设置提示的背景
messageLayout.setTipsMessageBubble(new ColorDrawable(0xA020F000));
// 设置提示的字体大小
messageLayout.setTipsMessageFontSize(20);
// 设置提示的字体颜色
messageLayout.setTipsMessageFontColor(0x7CFC0000);