最新新的需求对即时通信里面的群组及成员头像显示有了新的需求更改,显然需求跟微信的效果差不多,自然我也是对微信群组头像显示的规则做了简单的分析最后做出一个基本和微信差不多的控件,效果图如下:

1:需求分析
对于这种需求其效果完全可以参照微信群组头像显示的规则来做,当只有一张图的时候那直接就是显示一张完整的图像,当有两个成员那么需要将两个成员头像均分控件的宽度,中间需要考虑间隔值,并且需要在控件居中显示,当有三个成员头像时群成员排成一排居中在控件中显示,当有4个成员是需要将控件4等分并且考虑间隔值,当超过4个小余7个时则是需要将群员头像划成两排居中显示在控件中并且考虑间隔值,最后一种情况就是9宫格那种形式将控件3*3等分控件,对这写情况进行一一实现,最终的实现效果如上;
2:具体实现
因为涉及到多图显示及考虑到最终需要网络请求头像则必然是选择自定义ViewGroup来实现,只需对加入的视图控件进行重新测量及排版即可;
1:自定义ViewGroup
继承VIewGroup需要重写两个重要的方法一个是onMeause,一个是onLayout,先看onMeause方法该这么重写,首先咱们肯定是要处理控件的wrap_context属性,如下:

如果为wrap_content时将他们的宽高固定为100像素,接下来最重要的当然是对子View的处理
网友评论