SurfaceView在HOME屏蔽下黑屏的解决办法

SurfaceView在屏蔽HOME键出现的黑屏现象

引言

今天上头让我们下个SurFaceView预览的小Demo,静态XML写完,改成动态加载SurfaceView。本来一切都很顺利,但拿到公司的机子上,添加了更改后的HOME屏蔽效果,SurfaceView就黑屏不显示了。后来拿了一个别人封装的工具类解决了。然后上头就叫我们找下发生黑屏的原因。

过程

可能时这类问题遇到的较少,这一时半会没有比较有步骤的检查方法。自己摸索了半天(各种注释+各种测试)也没整明白原因。后来一个同事说可能是其中的一句代码的原因。我一看,傻眼了,方法说明已经说的很清楚了。是哪一句代码呢?

解决

先看代码:

SurfaceView sv = (SurfaceView) findViewById(R.id.surfaceView);
sv.setZOrderOnTop(true);//就是这句!!!

这方法是做什么呢?请看说明:

Control whether the surface view’s surface is placed on top of its window. Normally it is placed behind the window, to allow it to (for the most part) appear to composite with the views in the hierarchy. By setting this, you cause it to be placed above the window. This means that none of the contents of the window this SurfaceView is in will be visible on top of its surface.

大体意思其实就是说这个surface默认是在window下的,而通过

 sv.setZOrderOnTop(true);

设置就能够将该surface放置在window最上方显示出来。而之前黑屏就是因为surface在window、下方

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值