修改消息的展示样式
Global IM UIKit 通过「消息展示模板」控制会话页面中消息的展示样式。App 可以按需修改指定类型消息的展示模板,实现对消息展示样式的个性化配置。
- SDK 默认为会话页面中需要展示的内置消息类型(详见消息类型概述)提供了展示模板,App 可以按需创建模板,替换默认模板。
- App 创建的自定义消息类型(详见自定义消息类型)默认没有对应的消息展示模板。如果 App 需要在会话界面中展示该自定义类型的消息,则必须创建对应的消息展示模板,提供给 SDK。
提示
App 如需在会话界面中展示自定义类型的消息,必须创建对应的消息展示模板,否则 SDK 无法正常展示该类型消息。
通过样式资源修改消息 UI
您可以通过替换 Global IM UIKit 自带样式资源,调整 SDK 内置消息的展示背景图,文字颜色和字体大小,适用于需要轻度自定义会话界面的场景。
替换消息背景图
Global IM UIKit 会话页面中每条消息都有气泡背景,蓝色气泡为发送的消息,白色气泡为接收的消息。
Global IM UIKit 在消息展示模版基类 BaseMessageItemProvider
中引用了多个 9-patch 文件。您可以在应用程序的 res/drawable-xhdpi/
目录下创建同名文件,替换默认的 .9.png
的图片资源来更改消息气泡的展示效果。
资源路径与名称 | 说明 |
---|---|
res/drawable-xhdpi/rc_message_item_right_bg.9.png | 右侧气泡,即发送消息的首条展示气泡 |
res/drawable-xhdpi/rc_message_item_right_child_bg.9.png | 右侧气泡,即发送消息展示气泡 |
res/drawable-xhdpi/rc_message_item_left_bg.9.png | 左侧气泡,即接受消息的首条展示气泡 |
res/drawable-xhdpi/rc_message_item_left_child_bg.9.png | 左侧气泡,即接受消息的展示气泡 |
res/drawable-xhdpi/rc_message_item_left_send_bg.9.png | 左侧气泡,即发送消息的首条展示气泡 |
res/drawable-xhdpi/rc_message_item_left_send_child_bg.9.png | 左侧气泡,即发送消息的展示气泡 |
修改内置文本消息的字体颜色或字体大小
您可以自定义 Global IM UIKit 中内置文本消息的字体颜色或字体大小。
复制 Global IM UIKit 提供的 rc_text_message_item.xml
资源文件到应用程序目录的 res/layout
目录下,修改该布局文件里的字体大小和颜色修改为自定义值。
替换内置消息默认展示模板
Global IM UIKit 为每种类型的消息都封装了对应的消息展示模板。所有的消息展示模板都继承自 BaseMessageItemProvider
。
如果您需要更改 SDK 内置消息的展示效果,且自定义需求较高,可以继承 BaseMessageItemProvider
,创建新的消息展示模板,并将该自定义模板提供给 SDK,替换 SDK 默认模板。
内置默认消息展示模板
消息类型 | 模板类名 |
---|---|
文本消息 TextMessage | TextMessageItemProvider.class |
图片消息 ImageMessage | ImageMessageItemProvider.class |
语音消息 HQVoiceMessage | HQVoiceMessageItemProvider.class |
文件消息 FileMessage | FileMessageItemProvider.class |
小视频消息 SightMessage | SightMessageItemProvider.class |
贴纸消息 StickerMessage | StickerMessageItemProvider.class |
动图消息 GIFMessage | GIFMessageItemProvider.class |