腾讯x5加载本地html乱码,腾讯X5内核播放器遇到的问题
最近在寫一個和視頻有關的項目,用到了騰訊x5內核的webview。利用webview調用本地js文件來播放視頻。事情本身很順利,但是在過程中遇到了一些小插曲,在此記錄一下。
1.去除播放器中的廣告
正常使用的情況下,我們進入播放界面會出現如下情況
屏幕下方總是會出現一個煩人的廣告。去除方法很簡單,在webview所在的Activity的onCreat方法中調用removeAd()即可。
private void removeAd(){
getWindow().getDecorView().addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
@Override
public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
ArrayList outView= new ArrayList();
getWindow().getDecorView().findViewsWithText(outView, "QQ瀏覽器", View.FIND_VIEWS_WITH_TEXT);
if (outView != null && outView.size() > 0) {
outView.get(0).setVisibility(View.GONE);
}
}
});
}
1.全屏問題
當點擊全屏后,再返回。出現如下bug(右上角白塊)
因為我在Activity中嵌入了webview(紅色方框內為webview),當視頻播放全屏的時候,其他控件被webview擠出屏幕范圍,此時點擊返回時,由于ActionBar寬度計算錯誤,導致右上角有一個白塊
解決方法如下:
在Activity重寫onConfigurationChanged方法,當橫屏(視頻全屏)時,調用
getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
當退出全屏時取消這個Flage即可。
那么FLAG_LAYOUT_NO_LIMITS是啥意思呢?
FLAG_LAYOUT_NO_LIMITS表示window大小不再不受手機屏幕大小限制,即window可能超出屏幕之外,這時部分內容在屏幕之外。
我們可以通過設置Flag來實現很多功能,這里不一一細說,有興趣的朋友可以看看這里:
http://blog.csdn.net/i_lovefish/article/details/8050025
代碼如下:
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
try {
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
getWindow().addFlags(
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}
else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
getWindow().clearFlags(
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}
} catch (Exception e) {
e.printStackTrace();
}
}
作者:fcott
鏈接:https://www.jianshu.com/p/29380c857fbf
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權并注明出處。
總結
以上是生活随笔為你收集整理的腾讯x5加载本地html乱码,腾讯X5内核播放器遇到的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 名爵如何解除限速_价格不高却乐趣十足,全
- 下一篇: php链接mysql编码错误_php 操