Android 闪屏 黑屏移动 解决方法 Android切换至SurfaceView时闪屏(黑屏闪一下)以及黑屏移动问题的解决办法

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

Android 闪屏 黑屏移动 解决方法 Android切换至SurfaceView时闪屏(黑屏闪一下)以及黑屏移动问题的解决办法

Joanna.Yan   2021-03-25 我要评论
想了解Android切换至SurfaceView时闪屏(黑屏闪一下)以及黑屏移动问题的解决办法的相关内容吗,Joanna.Yan在本文为您仔细讲解Android 闪屏 黑屏移动 解决办法的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:surfaceview闪屏,surface闪屏,下面大家一起来学习吧。

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);

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们