1. 程式人生 > >【Android】WebView設定背景色

【Android】WebView設定背景色

 試遍了網上關於WebView設定背景色的各個方法,都沒有下面這個靠譜。描述下我遇到的問題,WebView載入顯示一段Html程式碼,但是UI設計的主介面是有一個淺灰色背景,而WebView預設的背景色白色死活去不掉,最終找到了下面的這篇文章。正解:

Android WebView 設定背景色為透明色

在網上找了 好多的方法都試過了 都不行

1.直接設定成background 為透明色 或者透明圖片 (無效)

android:background="@android :color/transparent"

2.設定載入的html為透明背景圖片(無效)

 String mobileDetails = "<html xmlns=\"http://www.w3.org/1999/xhtml\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /><title>vvv</title></head>" +
   "<div style='background-image: url(file:///android_asset/z_bg_transparent.png);'>" +
   mGetDetail.data.get("description")
   + "</div></html>";

3.網上所謂的(無效)

android:layerType="software"

或者

android:hardwareAccelerated="false"

4. 直接程式碼中設定 mWebView.setBackgroundColor(0); (無效)

5.最後抓著頭皮我在 mWebView.setBackgroundColor(0); 基礎上設定了他的透明度為 2 結果ok了(有效)

程式碼如下:

  mWebView.getSettings().setJavaScriptEnabled(true);
  mWebView.getSettings().setDefaultTextEncodingName("utf-8") ;
  mWebView.setBackgroundColor(0); // 設定背景色
  mWebView.getBackground().setAlpha(0); // 設定填充透明度 範圍:0-255
  mWebView.loadDataWithBaseURL(null, "載入中。。", "text/html", "utf-8",null);
  mWebView.loadDataWithBaseURL(mGetDetail.data.get("hostsUrl"), mGetDetail.data.get("description"), "text/html", "utf-8",null);
  mWebView.setVisibility(View.VISIBLE); // 載入完之後進行設定顯示,以免載入時初始化效果不好看

最後設定背景色哪行程式碼設定上就OK了

親測可行,大家可以驗證下哈