我正在创建一个显示 HTML5 视频的应用程序,用于学习 android 编程,它使用 Floating WebView
。
即使在升级了 WebView
的设备上,它的表现也非常不稳定。
(我使用的是 Lollipop 驱动的 Nexus 5)
虽然它附加在 Activity 上(不是 float 的),但它表现得非常光滑。
即使它是 float 的,当任何 WebView
被放置在 Current Activity 上时,它也能流畅地执行。
但是,如果当前 Activity (如启动器)上没有 WebView
,则它会执行得非常缓慢且不稳定。
这是我正在使用的部分代码:
WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
WebView = new WebView();
WindowManager.LayoutParams paramsRL = new WindowManager.LayoutParams(
800,
450,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
PixelFormat.TRANSLUCENT);
paramsRL.gravity = Gravity.TOP | Gravity.LEFT;
webView.setWebChromeClient(new WebChromeClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
webView.loadUrl("html5_video_page_URL_here");
windowManager.addView(webView,paramsRL);
是否有解决此问题的方法?
编辑 添加了解释此行为的视频:http://youtu.be/BPDxzRRO1N8 在进行一项 Activity 时,它表现得像黄油一样光滑:http://youtu.be/aQcJRPCZWYs 在 Kitkat 上,至少在三星 Galaxy 上,它表现得像黄油一样光滑:http://youtu.be/7Dw0tJ67eJw
我也提交了一个错误 https://code.google.com/p/chromium/issues/detail?id=460440
最佳答案
可以添加
webView.setLayerType(WebView.LAYER_TYPE_HARDWARE, null);
希望对你有帮助
关于android - WebView 附加到 WindowManager android 时执行缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28622262/