Android 踩坑记Android开发者俱乐部安卓知识

Fragment中包含有surfaceView,点击切换Frag

2016-06-14  本文已影响1467人  Karma1026

问题描述:最近在做一个折线图,看了很多第三方的优秀折线图开源项目,例如:MpAndroidChart 等。。。,可是拿来看并不符合自己的需求,后来就自己学习写了一个自定义View折线图,继承surfaceView来实现坐标里面的数据滑动,surfaceView添加到fragment来显示,可是问题来了,点击切换fragment的时候,会出现大概1秒左右的黑屏。

原因【摘自网路】:

SurfaceView因为不同于一般的view,它有自己良好的缓冲以及数据存取机制,系统对他有特殊处理。当surfaceview第一次在当前activity上添加的时候,系统会给WindowManager重新排布局,relayout,这样就会黑一下,这个只会出现在第一次,以后再添加surfaceview时就不会黑屏了。

黑屏现象,有图有真相:
黑屏現象
解决办法:
setBackgroundColor(Color.argb(255,255,231,115));

 或者在xml文件中添加: 

android:background="#fff"
 getWindow().setFormat(PixelFormat.TRANSLUCENT); 
      setZOrderOnTop(true);
      getHolder().setFormat(PixelFormat.TRANSPARENT); ```

** 这样问题就算解决了!**解决后的效果图如下:

![解決黑屏](http://upload-images.jianshu.io/upload_images/915812-53ae1c3f8237e47c.gif?imageMogr2/auto-orient/strip)

** ps:演示图录得有点差,不好意思哈,求各位推荐好的录演示图软件 **

参考文章:
[http://www.lxway.net/425221624.html](http://www.lxway.net/425221624.html)
[http://www.jb51.net/article/72719.htm](http://www.jb51.net/article/72719.htm)


上一篇 下一篇

猜你喜欢

热点阅读