Andorid 解决VideoView透明问题

开发中当使用SwipeBackActivity进行滑动返回后,发现一个奇葩的问题,将Activity底色设为透明后VideoView也变透明了,而且是无视父布局区域的。

这里我自己提供了一个解决办法:

为VideoView设置背景色,这样可以避免透明的问题,但是同时图像也被掩盖了(坑爹)。这里就需要我们对视频进行判断,而VideoView的判断机制是很坑爹的,需要在onPrepared()方法中进行判断,并且就算onPrepared回调了也不能保证视频开始播放,仅仅代表视频准备完毕。这样就需要判断用户开始播放视频的时间以及视频结束时再将背景色设置回来,特别是当网络不好的时候,需要判断的情况很多,一不小心就会出问题。

所以又在网上找了很多相关的帖子,最终终于找到一个相对好的解决方法:

videoView.setZOrderOnTop(true);

因为VideoView 继承于SurfaceView,而SurfaceView会出现黑屏或者透明的问题。这个方法是将SurfaceView挪到上层。这样就能简单的避免透明的发生。


最近发现一个新的问题,这个方法必须在布局一开始绘制时进行调用才会生效,并且设置了该方法后videoview上的别的空间会被遮挡,虽然依然能够被点击。

转载自http://blog.csdn.net/EdisonChang/article/details/52087248

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值