1.最近的项目中,有一个Activity用到Fragment+ViewPager,其中一个fragment中实现了视频播放的功能,包含有SurfaceView。结果,每次打开程序第一次进入到该Activity时都会闪屏黑一下。原因就出在SurfaceView。

详解:
I think I found the reason for the black flash. In my case I'm using a SurfaceView inside a Fragment and dynamically adding this fragment to the activity after some action. The moment when I add the fragment to the activity, the screen flashes black. I checked out grepcode for the SurfaceView source and here's what I found: when the surface view appears in the window the very fist time, it requests the window's parameters changing by calling a private IWindowSession.relayout(..) method. This method “gives” you a new frame, window, and window surface. I think the screen blinks right at that moment.
The solution is pretty simple: if your window already has appropriate parameters it will not refresh all the window's stuff and the screen will not blink. The simplest solution is to add a 0px height plain SurfaceView to the first layout of your activity. This will recreate the window before the activity is shown on the screen, and when you set your second layout it will just continue using the window with the current parameters. I hope this helps.
原因:
SurfaceView因为不同于一般的view,它有自己良好的缓冲以及数据存取机制,系统对他有特殊处理。当surfaceview第一次在当前activity上添加的时候,系统会给WindowManager重新排布局,relayout,这样就会黑一下,这个只会出现在第一次,以后再添加surfaceview时就不会黑屏了。
解决:
可以在没有进入surfaceview的界面(比如很多程序一进去就有个Loading界面)的时候,在其它界面的layout.xml文件中添加一个SurfaceView,宽和高都弄成0dp,这样对布局没影响,而且这个东西使得surfaceview第一次出现了,那么也就是说,下一次我们真正用到SurfaceView的时候就不会闪屏了。
2.viewpager中有surfaceview播放视频,来回滑屏时,关于黑屏移动问题
解决:
surfaceview.setZorderTop(true);
surfaceview.getHolder().setFormat(SurfaceView.TRANSPARENT);
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# surfaceview闪屏
# surface闪屏
# Android跟随手指移动的控件demo实例
# Android自定义View实现跟随手指移动的小兔子
# Android绘制跟随手指移动的小球
# Android自定义圆形View实现小球跟随手指移动效果
# Android实现拖动小球跟随手指移动效果
# Android实现View拖拽跟随手指移动效果
# Android中View跟随手指移动效果
# Android View移动的六种方法小结
# Android View移动的3种方式总结
# Android自定义View实现跟随手指移动
# 黑屏
# 就会
# 有个
# 出现在
# 中有
# 只会
# 他有
# 时就
# 会给
# 其中一个
# 一进
# 出在
# 到该
# 再添
# 弄成
# 视频播放
# 有一个
# 出现了
# 也就是说
# 实现了
相关文章:
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
内部网站制作流程,如何建立公司内部网站?
网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?
制作网站的过程怎么写,用凡科建站如何制作自己的网站?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
建站之星如何通过成品分离优化网站效率?
安徽网站建设与外贸建站服务专业定制方案
建站主机选购指南与交易推荐:核心配置解析
如何快速使用云服务器搭建个人网站?
公司网站的制作公司,企业网站制作基本流程有哪些?
如何正确选择百度移动适配建站域名?
武清网站制作公司,天津武清个人营业执照注销查询系统网站?
如何选择适配移动端的WAP自助建站平台?
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
如何在云主机快速搭建网站站点?
如何选择CMS系统实现快速建站与SEO优化?
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
免费ppt制作网站,有没有值得推荐的免费PPT网站?
如何批量查询域名的建站时间记录?
宝塔新建站点为何无法访问?如何排查?
建站之星如何实现五合一智能建站与营销推广?
建站之星后台密码遗忘或太弱?如何重置与强化?
建站之星安装后如何自定义网站颜色与字体?
贸易公司网站制作流程,出口贸易网站设计怎么做?
建站之星在线版空间:自助建站+智能模板一键生成方案
如何在云虚拟主机上快速搭建个人网站?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
如何零成本快速生成个人自助网站?
为什么Go需要go mod文件_Go go mod文件作用说明
如何撰写建站申请书?关键要点有哪些?
深圳网站制作案例,网页的相关名词有哪些?
b2c电商网站制作流程,b2c水平综合的电商平台?
如何在IIS中配置站点IP、端口及主机头?
建站之星安全性能如何?防护体系能否抵御黑客入侵?
如何确保西部建站助手FTP传输的安全性?
建站之星如何取消后台验证码生成?
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
如何有效防御Web建站篡改攻击?
宿州网站制作公司兴策,安徽省低保查询网站?
如何用5美元大硬盘VPS安全高效搭建个人网站?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
制作表格网站有哪些,线上表格怎么弄?
Swift中循环语句中的转移语句 break 和 continue
小型网站制作HTML,*游戏网站怎么搭建?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
开源网站制作软件,开源网站什么意思?
建站之星上传入口如何快速找到?
*请认真填写需求信息,我们会在24小时内与您取得联系。