㈠ 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方法