㈠ android webview 怎么开启或关闭硬件加速
Google Android官方文档中对WebView介绍如下:
HTML5Videosupport
accelerationturnedon.
所以安卓要开启硬件加速只需要在清单文件或者WebViewActivity中配置即可:
四种级别:
java">Application级别:<applicationandroid:hardwareAccelerated="true"...>
Activity级别:<activityandroid:hardwareAccelerated="false"...>
Window级别:getWindow().setFlags(
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
View级别:
mView.setLayerType(View.LAYER_TYPE_HARDWARE,null);
㈡ Android的WebView有哪些坑
都是坑
WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页,实现WebView有以下两种不同的方法:
第一种方法的步骤:
1.在要Activity中实例化WebView组件:WebView webView = new WebView(this);
2.调用WebView的loadUrl()方法,设置WevView要显示的网页:
互联网用:webView.loadUrl("http://www.google.com");
本地文件用:webView.loadUrl("file:///android_asset/XX.html");本地文件存放在:assets文件中
3.调用Activity的setContentView()方法来显示网页视图
4.用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面
5.需要在AndroidManifest.xml文件中添加权限,否则会出现Web page not available错误。
第二种方法的步骤:
1、在布局文件中声明WebView
2、在Activity中实例化WebView
3、调用WebView的loadUrl( )方法,设置WevView要显示的网页
4、为了让WebView能够响应超链接功能,调用setWebViewClient( )方法,设置 WebView视图
5、用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面
6、需要在AndroidManifest.xml文件中添加权限,否则出现Web page not available错误。
<uses-permission android:name="android.permission.INTERNET"/>
本文出自 “IT的点点滴滴” 博客,请务必保留此出处http://liangruijun.blog.51cto.com/3061169/647456
㈢ android webview 开启硬件加速 播放视频时会闪屏 怎么解决。
解决方法是在webview中设置:
setLayerType(View.LAYER_TYPE_SOFTWARE, null);
这是把webview 中的硬件加速关闭。设置LAYER_TYPE_SOFTWARE后会把当前view转为bitmap保存。这样就不能开多个webview,否则会报out of memory。
㈣ android 用webview 播放网络视频怎么控制播放按键
WebView中的video标签默认就会带控制按键,但是在Android webView播放视频还需要以下几个设置:
需要在AndroidManifest.xml文件中声明需要使用HardwareAccelerate, 可以细化到Activity级别,如果不需要的View可以声明不要用加速,但是需要在代码中做
具体如下:
如果要声明整个应用都要加速:<application ...android:hardwareAccelerated="true">
如果要在Activity中声明,则:<activity ...android:hardwareAccelerated="true">Window,getWindow.setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
如果application或者activity都申明了要硬件加速,但是为了某些原因(比如省电?),一些View不需要硬件加速的话,view.setLayerType(View.LAYER_TYPE_SOFTWARE,null);
2.需要在AndroidManifest.xml文件中用上<use-sdk></use-sdk>标签,而且如果是空的还不行,必须写上targetSDK或者minSDK,但是我试验过,不管写版本是多少都没有关系。。。理论上说,Android应该是从3.0( API Level 11)开始可以对2D渲染加速,但是我把targetSDK设置为5都可以使用的,但是这个标签不写还不行。
一般来说,上面的操作做了,就可以使用video标签播放视屏了,如果要支持全屏,还需要做一点操作:给webview一个WebChromeClient对象,这个WebChromeClient对象需要实现onShowCustomView和onHideCustomView方法