读书人

Android的BUG(五)- WebView的插件使

发布时间: 2012-11-19 10:18:51 作者: rapoo

Android的BUG(五)- WebView的插件使用surfaceView引起的画面错乱问题

之前在调试flash 11在ICS上的使用效果时(这个版本使用的是surfaceView,市场上下的,基本上都是用nativeWindow了),发现一个bug,bug的现象如图1所示(访问http://www.qiaqiafood.com,页面主体是一个flash):

Android的BUG(五)- WebView的插件使用surfaceView引起的画面错乱有关问题

图1:错误的图片

Android的BUG(五)- WebView的插件使用surfaceView引起的画面错乱有关问题

图2:正常的图片

Webpage加载时,没有问题,但当将网页上下拖动后,就出现如图1所示的黑色区域,且图像显示的层叠关系也不正常。

该问题则追踪过程不细说,也花了好久。对这个问题:

1. 通过dump framebuffer的数据:

图3:surfaceView overlap BrowserActivity

2. 网页Scroll的时候,flash内容的scroll和browser内容不同步的问题,不同步的区域会留有黑框。

覆盖的问题,由于surfaceView默认是放在browser的surface前面的,这个无解,要解只能将surfaceView放在borwser的后面(前面说过,由于surface有实现挖洞(transparent)的功能,实际上放在后面也是可以解决的)


而不同步的问题,参看今年的google IO关于webview的介绍,这个在surfaceView上应该是无解了,Google的解决方法,是使用Hardware Accelerated,通过clipLayer/mediaLayer的方式 (openGL的纹理贴图)。相信webview插件往后都不会用surfaceView实现了吧。

读书人网 >Web前端

热点推荐