android自定义语音ui,Android自定义UI相关问题

1.如何替换聊天的气泡 ?

替换资源图片中的 rc_ic_bubble_left_file.9.png 、rc_ic_bubble_right_file.9.png

2.自定义消息如何不显示头像,且居中?

自定义消息的展示模版MessageItemProvider设置如下ProviderTag即可:@ProviderTag(messageContent = XXXMessage.class, showPortrait = false, centerInHorizontal = true, showProgress = false, showSummaryWithName = false

showPortrait = false 表示不显示头像

centerInHorizontal = true 表示居中显示

showProgress = false 表示不显示发送进度

showSummaryWithName = false 表示 会话页面不在消息上面显示昵称

3.如何修改会话列表、会话页面的用户头像为圆形?

会话列表 :在 rc_item_conversation.xml 里给 rc_left 控件,设置 app:RCShape="circle" 属性,如下:

android:id="@+id/rc_left"

android:layout_width="48dp"

android:layout_height="48dp"

android:layout_gravity="center"

android:background="@android:color/transparent"

app:RCCornerRadius="3dp"

app:RCDefDrawable="@drawable/rc_default_portrait"

app:RCShape="circle" />

会话页面:在 rc_item_message.xml 里给 rc_left 和 rc_right 控件设置 app:RCShape="circle" 属性

4.如何自定义会话列表的 adapter ?

1.自定义会话列表 adapter 继承自 ConversaitonListAdapter ,根据您的需求复写其中的 newView() 或者 bindView() 方法。

2.自定义会话列表 fragment 继承自 ConversationListFragment,复写 onResolveAdapter() 方法,返回自定义的 adapter。另外您的 activity 布局文件中也需要配置成自定义的 fragment。

5.如何自定义会话页面的 adapter ?

1.自定义会话页面 adapter 继承自 MessageListAdapter ,根据您的需求复写其中的 newView() 或者 bindView() 方法。

2.自定义会话页面 fragment 继承自 ConversationFragment,复写 onResolveAdapter() 方法,返回自定义的 adapter。另外您的 activity 布局文件中也需要配置成自定义的 fragment。

6.如何给会话列表设置头布局?

自定义 fragment 继承自 ConversationListFragment ,重写 onAddHeaderView 方法,返回要添加的头布局 view./**

* 会话列表添加头部

*

* @return 头部view

*/

protected List onAddHeaderView()

7.会话列表如何过滤(不显示)某个会话?

自定义 fragment 继承自 ConversationListFragment ,重写 shouldFilterConversation 方法。可根据 conversaitonType 和 targetId 来判断是否要过滤该会话,需要过滤 return true ,不需要过滤 return false 。/**

* 会话列表界面是否过滤某一会话,过滤之后,用户往该会话发送消息,也不会在会话列表展示

*

* @param type     会话类型

* @param targetId 会话的目标Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id。

* @return

*/

public boolean shouldFilterConversation(ConversationType type, String targetId)

8.如何填充自定义数据到会话列表页面?

自定义 fragment 继承自 ConversationListFragment ,重写 getConversaitonList 方法,通过 callback 返回要显示的数据,具体说明如下:/**

* 开发者可以重写此方法,来填充自定义数据到会话列表界面。

* 如果需要同时显示 sdk 中默认会话列表数据,在重写时可使用 super.getConversationList()。反之,不需要调用 super 方法。

* 注意:通过 callback 返回的数据要保证在 UI 线程返回。

*

* @param conversationTypes 当前会话列表已配置显示的会话类型。

*/

public void getConversationList(ConversationType[] conversationTypes, final IHistoryDataResultCallback> callback)

9.如何获取到会话列表的数据?

当直接修改布局文件和自定义 adapter 都无法满足您的需求,您可以通过 RongIM 提供的接口来获取会话列表的数据,然后完全自己来实现 UI ,这样可自定义的层度更高。接口说明如下.

回调的方式获取会话列表的所有数据:/**

* 获取会话列表。

*

* @param callback 会话列表数据回调。

*                 Conversation。

*/

public void getConversationList(RongIMClient.ResultCallback> callback)

回调的方式获取会话列表某几个类型的数据:/**

* 根据会话类型,回调方式获取会话列表。

*

* @param callback 获取会话列表的回调。

* @param types    会话类型。

*/

public void getConversationList(RongIMClient.ResultCallback> callback, Conversation.ConversationType... types) {

10.如何去掉会话页面的“文件 plugin ”?

文件 plugin 和 图片 plugin 是 SDK里默认自带的 plugin , 如果不需要,可以通过如下方式去掉:

自定义一个 ExtensionModule 继承自 DefaultExtensionModule,复写其中的 getPluginModules() 方法,remove掉类型为 FilePlugin 或 ImagePlugin 的插件,如下:public class MyExtensionModule extends DefaultExtensionModule {

@Override

public List getPluginModules(Conversation.ConversationType conversationType) {

List pluginModules = super.getPluginModules(conversationType);

Iterator it = pluginModules.iterator();

while (it.hasNext()) {

IPluginModule pluginModule = it.next();

if (pluginModule instanceof FilePlugin) {

it.remove();

}

}

return pluginModules;

}

}

11.想修改拓展区域的布局,在哪里修改?

部分布局文件如下,您可以通过修改对应的布局文件来调整界面布局,修改背景,更改字体等。

1、rc_ext_extension_bar.xml 输入框布局文件。它是整个输入框的容器,内部有对各部分组件功能描述。

2、rc_ext_input_edit_text.xml EditText 布局文件。如果想要替换背景,直接修改即可。

3、rc_ext_voice_input.xml 语音输入布局文件。

12.如何增加或删除会话页面中消息的长按菜单中的 item ?

调 RongMessageItemLongClickActionManager 的 addMessageItemLongClickAction 来添加长按菜单,如:RongMessageItemLongClickActionManager.getInstance().addMessageItemLongClickAction(clickActionReference, 2);

调 removeMessageItemLongClickAction 移除长按菜单:public void removeMessageItemLongClickAction(MessageItemLongClickAction action)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值