SurfaceView 闪屏 闪现黑块 及黑线问题解决

1、为什么要用SurfaceView

项目中经常会出现多个自定义View,并且可能会多次且频繁的调用canvas进行绘制。当优化还是无法解决界面绘制时卡顿掉帧现象时,我们可以考虑用SurfaceView来解决。它继承自View类,但是内部实现了双buffer并且是在一个单独的线程中进行进行绘制最后再post canvas到UI上。关于他的内部细节可以参考Android SurfaceView双缓存机制以及Android SurfaceView 源码分析及使用

2、如何解决 SurfaceView 闪屏 以及 滑动时产生的黑线问题

2.1 闪屏问题

setBackgroundColor(Color.argb(0x00, 0, 0, 0));
mSurfaceHolder.setFormat(PixelFormat.TRANSPARENT);
//如果无法解决

xml 中 自定义view 设置 android:background="#fff"

2.2 滑动时上下两边产生的黑线问题

android:layout_marginBottom="-xxdp"
android:layout_marginTop="-xxdp"
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,327评论 25 709
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,721评论 0 17
  • 介绍自己负责的部分,如何实现的。 框架的搭建排查问题以及结解决方式兼容性保证性能优化上线之后模块导致crash的比...
    黄海佳阅读 14,502评论 6 350
  • 放手去做,你就会拥有力量。 一听名字就显得很鸡汤的一本书。应该算是成功学的书籍了把。 就这本书而言,有一些内容和前...
    更欣阅读 1,228评论 0 18
  • 2016年9月5日 21:25夜半无眠独立溪畔徒增泪水涟涟 月落情殇愁眉紧锁欲与君诉忠肠
    晴空Irena阅读 1,566评论 2 3