Android 关于环信聊天 视频界面小窗口问题
来源:互联网 发布:梅西2010世界杯数据 编辑:程序博客网 时间:2024/05/23 12:00
最近有公司有一个需求 需要将环信的视频聊天窗口缩小 类似微信那样,可以放大,并且缩小后可以看到文本聊天的窗口。看了环信的代码 发现文本聊天和视频聊天是两个独立的activity,于是想到activity如何能悬浮并且 在他下面的activity能获得焦点,试了几次发现不能实现。后来有想到一种办法 ,这种办法比较笨拙,但是真的实现了,我将视频聊天的逻辑和图文的逻辑写到了一个activity里面,视频聊天的界面采用悬浮窗口,当在聊天界面的时候需要启动视频界面 便将视频的view 添加到windowmanager中,实现悬浮 并且可以改变大小,在小窗口的模式下 还可以发送图文消息。
网盘地址:http://pan.baidu.com/s/1jIcBNfg,希望可以帮到有同样需求的人。
主要代码片段:
/**************************** 视频悬浮窗********************************/WindowManager mWindowManager;WindowManager.LayoutParams wmParams;public void showFloatWindow() { wmParams = new WindowManager.LayoutParams(); mWindowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE); wmParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT; wmParams.format = PixelFormat.RGBA_8888; wmParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; wmParams.gravity = Gravity.LEFT | Gravity.TOP; wmParams.x = 0; wmParams.y = 0; wmParams.width = ScreenUtil.getScreenWidth(ChatActivity.this); wmParams.height = ScreenUtil.getScreenHeight(ChatActivity.this) - ScreenUtil.getNavigationBottomHeight(ChatActivity.this); viewRootView.setParams(wmParams); viewRootView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(isChangefreeState){ changeFloatSize(); isChangefreeState = false; } } }); mWindowManager.addView(viewRootView, wmParams); isAddWindowManager = true;}public void changeFloatSize() { if (!isChangefreeState) { wmParams.x = ScreenUtil.getScreenWidth(ChatActivity.this); wmParams.y = 0; wmParams.width = ScreenUtil.getScreenWidth(ChatActivity.this) / 3; wmParams.height = ScreenUtil.getScreenHeight(ChatActivity.this) / 3; mWindowManager.updateViewLayout(viewRootView, wmParams); callStateTextView.setVisibility(View.INVISIBLE); chronometer.setVisibility(View.INVISIBLE); nickTextView.setVisibility(View.INVISIBLE); switchCameraBtn.setVisibility(View.INVISIBLE); voiceContronlLayout.setVisibility(View.INVISIBLE); hangupBtn.setVisibility(View.INVISIBLE); changeBtn.setVisibility(View.INVISIBLE); } else { wmParams.x = 0; wmParams.y = 0; wmParams.width = ScreenUtil.getScreenWidth(ChatActivity.this); wmParams.height = ScreenUtil.getScreenHeight(ChatActivity.this) - ScreenUtil.getNavigationBottomHeight(ChatActivity.this); mWindowManager.updateViewLayout(viewRootView, wmParams); callStateTextView.setVisibility(View.VISIBLE); chronometer.setVisibility(View.VISIBLE); nickTextView.setVisibility(View.VISIBLE); switchCameraBtn.setVisibility(View.VISIBLE); voiceContronlLayout.setVisibility(View.VISIBLE); hangupBtn.setVisibility(View.VISIBLE); changeBtn.setVisibility(View.VISIBLE); }}public void removeFloatWindow() { if (viewRootView != null && isAddWindowManager) { mWindowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE); mWindowManager.removeView(viewRootView); isAddWindowManager = false; }}
0 0
- Android 关于环信聊天 视频界面小窗口问题
- Android集成网易云信(关于聊天与聊天界面)
- iOS——微信朋友圈小视频的播放和聊天窗口小视频的播放
- IOS 微信聊天发送小视频
- Android环信设置聊天头像问题
- 关于微信聊天界面更换背景
- 关于openfire的android音/视频聊天的方案问题
- android 实现微信聊天界面效果
- 集成环信即时通讯的Android聊天小程序
- 微信关闭当前界面 回到聊天窗口
- 关于Edittext点击弹出软键盘,布局上移标题消失问题,微信聊天界面
- 关于Edittext点击弹出软键盘,布局上移标题消失问题,微信聊天界面
- Android聊天的界面的小DEMO
- iOS - 集成环信聊天界面
- 04环信聊天界面 - 发送语音
- 环信修改聊天界面自定义EaseChatMessageList
- 微信聊天界面
- 聊天窗口界面编写
- Java SSM 商户管理系统 客户管理 库存管理 销售报表 项目源码
- Python 多线程抓取图片效率对比
- Discuz!积分操作common_credit_log 表中的 operation 缩写的取值对应的含义
- MATLAB中filter2 conv2 imfilter2 fspecial函数用法
- 理解OAuth 2.0
- Android 关于环信聊天 视频界面小窗口问题
- 数据结构第一讲-复杂度问题
- window.addEventListener来解决让一个js事件执行多个函数
- Zend Studio使用教程:在AWS上Zend Studio使用Zend Server开发应用程序(2/3)
- MD5加密
- 图存储4-邻接多重表
- Java中的引用类型(强引用、软引用、弱引用、虚引用)
- python 字符串函数
- 基于WebSocket的服务器推送的JAVA聊天室