直播互动界面优化方案

背景:

直播界面的布局是上部16:9的主视频区域,下部是聊天输入布局加上16:9的文档布局。剩下的区域放视频列表,要求适配剩余位置居中。

存在问题:

1,当手机分辨率低,中间剩下的位置较少的情况下,小视频列表会显示不全,甚至和上下视频文档区域产生重叠。
2,主播的图标以及文字被盖住(这个和小视频会盖住主视频以及文档区域一样,因为小视频view是后面add进去的)

解决方案:

代码处理。先算出剩余空间高度,然后按比例给出高度

代码

获取到剩余高度传给videoadapter

mVideoAdapter=newVideoAdapter(DocClassLiveActivity.this,mVideos.getMeasuredHeight());

在videoviewholder里处理每一个item的宽高

VideoViewHolder(View itemView) {
            super(itemView);
            int itemHeight = parentHeight - DisplayUtils.dip2px(5f);
            int itemWidth = (int) (itemHeight / 1.76);
            FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) mDocItemRoot.getLayoutParams();
            layoutParams.setMargins(0,DisplayUtils.dip2px(2.5f),0,DisplayUtils.dip2px(2.5f));
            layoutParams.width = itemWidth;
            layoutParams.height = itemHeight;
            mDocItemRoot.setLayoutParams(layoutParams);

        }

itemHeight 减去5dp是为了给上下留点缝隙,宽高比给她1.76

if(videoStreamView.getIsPresenter()){
              params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
                        ViewGroup.LayoutParams.WRAP_CONTENT);
            }else {
                params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
                        ViewGroup.LayoutParams.MATCH_PARENT);
            }
            params.addRule(RelativeLayout.CENTER_IN_PARENT);
            renderer.setLayoutParams(params);
            holder.mDocItemRoot.addView(renderer,0 );

添加的时候对是否为主视频进行区分,addview的时候后面参数为0,处理添加的view盖住主讲图标以及名字问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,236评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,276评论 4 61
  • 文/陈洗秽 真可惜不是什么历史大人物,我没什么大事件一览表。想起高中整理的7页A4纸横铺相连的大事件表,能让我看得...
    陈洗秽阅读 755评论 4 9
  • 烟暮雨绵绵, 穿帘透薄寒。 秋催霜入鬓, 愁绪落眉端。 于2017.10.8
    真水无香_阅读 388评论 0 9