友盟:自定义样式

2016-01-31 20:57:26 |发布者: 安智宝

1.1  自定义样式

  • 这里提供了IM高级的功能,可以将即时通讯服务更加个性化的集成到应用中
  • 如果您对即时通讯服务集成不清楚,建议先看下快速集成文档

1.2  可以自定义的区域说明

1.2.1  聊天窗口

位置定制点定制方式
顶部标题栏整个标题栏(支持隐藏)实现接口
消息气泡文本消息和语音消息实现接口
消息中URLURL点击事件实现接口
底部消息栏“+”+”内增加选项实现接口
自定义消息展示、点击和长按事件实现接口
地理位置消息消息展示、点击和长按事件实现接口
语音消息播放使用听筒或者扬声器模式播放语音消息实现接口
自定义消息展示不包含头像的自定义消息展示实现接口
背景背景颜色或图片修改资源文件
消息字体文字大小,颜色修改资源文件

1.2.2  会话列表页面

位置定制点定制方式
顶部标题栏整个标题栏(支持隐藏)实现接口
自定义会话节点展示、点击和长按事件实现接口
会话点击事件点击会话跳转intent定制实现接口
背景背景颜色或图片修改资源文件
字体样式文字大小,颜色修改资源文件

1.2.3  通知栏提醒

位置定制点定制方式
通知栏消息提醒设置是否弹出通知消息,弹出通知栏消息的情况下是否响铃,是否震动提醒,可以针对单个会话进行消息提醒的设置(免打忧)实现接口

1.3  自定义相关的使用说明(概念)

OpenIMSDK提供了丰富的自定义能力,开发者只要继承SDK的自定义相关的类,然后Override相关的方法即可实现自定义功能。 第一步,继承自定义类,比如IMChattingPageOperateion,IMChattingPageUI,然后Override相关的方法(自定义功能)。 第二步,将自定义类向SDK注册,调用AdviceBinder.bindAdvice方法,**注意bindAdvice要在ApplicationOncreate中调用**。 以上两步即可完成自定义的功能,开发者自定义的类将由SDK在需要时自动创建,并不需要开发者去创建(实例化)。刷注册

比如现在要隐藏最近会话列表的标题栏

第一步:

//继承IMConversationListUI,同时提供构造方法

public class ConversationListUICustomSample extends IMConversationListUI {

public ConversationListUICustomSample(Pointcut pointcut) {

super(pointcut);

}

//不显示标题栏

@Override

public boolean needHideTitleView(Fragment fragment) {

return true;

}

}

当然IMConversationListUI有其它更多的方法可以Override,具体可以查看我们的demo

第二步: 在AppOncreate中注册自定义类,第一个参数表明自定义类型,第二个参数是自定义类的class

AdviceBinder.bindAdvice(PointCutEnum.CONVERSATION_FRAGMENT_UI_POINTCUT, ConversationListUICustomSample.class);

1.4  自定义效果图说明

1.4.1  聊天窗口UI定制展示

1.4.2  会话列表UI定制展示     安卓app推广平台

1.5  自定义消息通知栏的显示

通知栏支持开发者设置应用名称,图标和点击通知栏消息跳转intent的设置,此设置请在发起登录之前完成

mIMkit.setEnableNotification(true);//开启通知栏提示

mIMkit.setAppName("我的OpenIM");//通知栏显示的名称

mIMkit.setResId(R.drawable.aliwx_notification_bg);//开发者可以换成自定义的Icon

Intent intent = imKit.getConversationActivityIntent(); //开发者可以使用openIM提供的intent也可以使用自定义的intent

imKit.setNotificationIntent(intent); //通知栏点击跳转,同时也支持针对单个会话的消息提醒与否的设置(免打扰) 刷注册

具体请参考工程NotificationInitSampleHelper

1.6  单聊页面UI定制化

1.6.1  文本消息与图片消息的气泡背景图设置

//设置消息的聊天气泡背景处理器,可以自定义设置文本以及图片消息的背景图,详细参见demo中的 ChattingUICustomSample 类

//第一步:新增类 继承IMChattingPageUI

public class ChattingCustomAdviceSample extends IMChattingPageUI{

//设置左边文本消息气泡背景图,需要.9图

@Override

public int getLeftImageMsgBackgroundResId() {

return R.drawable.aliwx_comment_l_green_bg;

}

@Override

public int getLeftTextMsgBackgroundResId() {

return R.drawable.aliwx_comment_l_green_bg;

}

@Override

public int getRightImageMsgBackgroundResId() {

return R.drawable.aliwx_comment_r_orange_bg;

}

@Override

public int getRightTextMsgBackgroundResId() {

return R.drawable.aliwx_comment_r_orange_bg;

}

}

//第二步:在Applicatoin类里将这个自定义接口绑定到单聊界面,加入以下代码(对于单聊界面的所有自定义UI定制只需要加一次)

AdviceBinder.bindAdvice(PointCutEnum.CHATTING_FRAGMENT_UI_POINTCUT,ChattingCustomAdviceSample.class); 友盟网

1.6.2  自定义聊天标题

此功能可实现开发者定制自己的标题。 详细参见demo中的 ChattingUICustomSample类 实现方法:

//第一步:新增类 继承IMChattingPageUI,返回自定义的View

public class ChattingCustomAdviceSample extends IMChattingPageUI

public View getCustomTitleView(final Fragment fragment,final Context context, LayoutInflater inflater,YWConversation conversation) {

View view = inflater.inflate(R.layout.demo_custom_chatting_title, null);

return view;

}

//第二步:在Applicatoin类里将这个自定义接口绑定到单聊界面,加入以下代码(对于单聊界面的所有自定义UI定制只需要加一次)

AdviceBinder.bindAdvice(PointCutEnum.CHATTING_FRAGMENT_UI_POINTCUT,ChattingCustomAdviceSample.class);

1.7  最近联系人页面UI定制化

1.7.1  增加自定义的会话结点

此功能用于开发者在最近联系人列表加入额外的会话item,详见demo ConversationListUICustomSample 类 及CustomConversationHelper 类

//第一步:新增类,继承IMConversationListUI

public class ConversationListUICustomSample extends IMConversationListUI

//第二步:在Applicatoin类里将这个自定义接口绑定到最联系人界面,加入以下代码(对于最近联系人界面的所有自定义UI定制只需要加一次)

AdviceBinder.bindAdvice(PointCutEnum.CHATTING_FRAGMENT_UI_POINTCUT, ConversationListUICustomSample.class);

//第三步,以上两步主要为了显示,第三步是需要在打开列表界面前 插入一个自定义会话对象

YWCustomConversationUpdateModel cu = new YWCustomConversationUpdateModel();

cu.setIdentity(conversationID);

cu.setContent(content);

cu.setLastestTime(new Date().getTime());

YWIMKit imKit = LoginSampleHelper.getInstance().getIMKit();

IYWConversationService conversationService = imKit.getConversationService();

conversationService.updateOrCreateCustomConversation(cu);

1.7.2  最近联系人增加自定义的标题

此功能用于实现在最近联系人列表定制标题,详见 ConversationListUICustomSample 类

//第一步:新增类 继承IMConversationListUI,返回自定义的View

public class ConversationListUICustomSample extends IMConversationListUI {

public View getCustomConversationListTitle(final Fragment fragment,

final Context context, LayoutInflater inflater) {

RelativeLayout customView = (RelativeLayout) inflater

.inflate(R.layout.demo_custom_conversation_title_bar, null);

return customView;

}

//第二步:在Applicatoin类里将这个自定义接口绑定到最联系人界面,加入以下代码(对于最近联系人界面的所有自定义UI定制只需要加一次)

AdviceBinder.bindAdvice(PointCutEnum.CONVERSATION_FRAGMENT_POINTCUT, ConversationListCustomAdviceSample.class);

1.8  标题栏定制

开发者可以替换整个聊天窗口的标题栏。 具体参考demo工程ChattingUICustomSample

1.9  最近联系人列表增加自定义节点

开发者可以在最近联系人列表增加自定义的节点。 具体参考demo工程ConversationListUICustomSample


关于安智宝

    安智宝是主打效果的安卓应用推广平台。通过安智宝,用户可以通过自助方式 进行应用推广。作为效果性的推广平台,安智宝利用云技术智能的进行渠道匹 配,对渠道的高效利用,节约用户的每一分钱。用户可以精确的控制应用投放 每天的投放量、渠道质量(留存率等),做到覆盖广、活跃度高、控制精准。

联系客服

Copyright © 2016 - 2020 anzhibao.com . All Right Reserved.

安智宝  版权所有