2013-09-24 78 views
0
package com.example.webviewtheme; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.webkit.WebView; 

public class MainActivity extends Activity { 
WebView webview1; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     webview1=(WebView)findViewById(R.id.webView1); 

     String rawHTML = "<HTML>"+ 
     "<body style='color: #000000; background-color: #ffffff'><h1>Hello Android </h1></body>"+ 
    "</HTML>"; 
     webview1.setBackgroundColor(00000000); 
     webview1.loadData(rawHTML, "text/HTML", "UTF-8"); 
    } 

} 

這是我的代碼要設置web視圖的背景顏色黑文白我試圖適用於HTML,但不能出去放,請幫助我如何設置夜間模式在網頁視圖文本和背景如何設置背景顏色黑色和機器人的WebView文白

+0

嘗試這些鏈接[Link](http://stackoverflow.com/questions/11225296/how-set-text-color-of-webview-in-android)和[Link](http://stackoverflow.com /問題1 ons/1254970/change-text-color-in-a-webview)和[Link](http://stackoverflow.com/questions/3389446/android-webview-changing-backcolor-and-font-color) – vish

回答

2

給在Java類

webView1.setBackgroundColor(0); 

以下,並設置文本的顏色在XML

+0

它沒有工作親愛的 – user2794306

0

用這個網頁流量backg roundColor:

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.webkit.WebView; 

public class MainActivity extends Activity { 

    WebView webview1; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     webview1=(WebView)findViewById(R.id.webview1); 

     String text = "<html><head>" 
        + "<style type=\"text/css\">body{color: #fff; background-color: #000;}" 
        + "</style></head>" 
        + "<body>"       
        + "Helloo Andorid" 
        + "</body></html>"; 

     webview1.loadData(text, "text/html", "utf-8"); 
     webview1.setBackgroundColor(00000000); 
    } 

} 

它的作品對我..

+0

我有Puted另一個按鈕爲白天模式在其中我已經設置backGround白色我將如何做到這一點 – user2794306

+0

你必須應用背景白色爲相同的網絡視圖? – Lokesh

0

海這可能會幫助你

dialogMesage.setBackgroundColor(0x00000000); 

myWebView.setBackgroundColor(Color.parseColor("#FFFFFF")); 
+0

Actully我想應用白天模式和夜間模式的主題設置。 – user2794306

2

webview.setBackgroundColor(0)使網頁流量透明。

您需要在HTML標籤bg中設置bg顏色黑色。

0

在XML

<WebView 
      android:id="@+id/web" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:background="@android:color/black" /> 

在Java代碼中

String str="<div style=\'background-color:transparent;padding: 5px ;color:#white'>Enter text to display in web view</div"; 
WebView web=(WebView)findViewById(R.id.web); 
web.loadData(str,"text/html","utf-8"); 
web.setBackgroundColor(Color.TRANSPARENT); 
+0

Actully我想應用白天模式和夜間模式的主題設置。 – user2794306

2

好吧,這是不是在文件中,不推薦,但它會工作:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    ... 
    webview.loadUrl("http://en.wikipedia.org/wiki/Lena_S%C3%B6derberg"); 
    try { 
     Class clsWebSettingsClassic = 
      getClassLoader().loadClass("android.webkit.WebSettingsClassic"); 
     Method md = clsWebSettingsClassic.getMethod(
       "setProperty", String.class, String.class); 
     md.invoke(webview.getSettings(), "inverted", "true"); 
     md.invoke(webview.getSettings(), "inverted_contrast", "1"); 
    } catch (Exception e) {} 
} 

這樣做向WebView倒轉渲染。
「inverted_contrast」的範圍大約爲1到30(不太確定)。
與Android 4.2測試的結果:

http://i.imgur.com/IWsRcAW.png

+0

它也適用於我...使用這種顏色的字體和其他顏色是黑色或白色...我們可以得到的顏色?我需要像webview中的夜間模式...謝謝。 –

+0

它拋出ClassNotFoundException。我看過調試器 - getSettings()返回WebSettings實例。 –

2

這裏是東西,將JavaScript插入網頁,使其反轉顏色:

String js ="javascript: (" 
        +"function() { " 

        +"var css = 'html {-webkit-filter: invert(100%);' +" 
        +" '-moz-filter: invert(100%);' + " 
        +" '-o-filter: invert(100%);' + " 
        +" '-ms-filter: invert(100%); }'," 

        +"head = document.getElementsByTagName('head')[0]," 
        +"style = document.createElement('style');" 

        +"if (!window.counter) { window.counter = 1;} else { window.counter ++;" 
        +"if (window.counter % 2 == 0) { var css ='html {-webkit-filter: invert(0%); -moz-filter: invert(0%); -o-filter: invert(0%); -ms-filter: invert(0%); }'}" 
        +"};" 

        +"style.type = 'text/css';" 
        +"if (style.styleSheet){" 
        +"style.styleSheet.cssText = css;" 
        +"} else {" 
        +"style.appendChild(document.createTextNode(css));" 
        +"}" 

        //injecting the css to the head 
        +"head.appendChild(style);" 
        +"}());"; 

        CustomWebView.this.loadUrl(js); 
2

使用本

webview1=(WebView)findViewById(R.id.webView1); 
    String rawHTML = "<HTML>"+ 
    "<head>"+"<style type=\"text/css\">"+ 
    "body,h1{color: #000000;"+ 
    "background-color: #ffffff;}"+ 
    "</style></head>"+ 
    "<body><h1>Hello Android </h1></body>"+ 
"</HTML>"; 
    webview1.loadData(rawHTML, "text/html; charset=UTF-8",null); 
+0

謝謝。你節省了我寶貴的時間。 – Parthi

+0

@Parthi高興我可以幫你:) – MHP

0

您可以使用其父項反轉WebView的顏色。

  1. 您需要在父項中實施反演。我正在使用FrameLayout,但您可以使用其他一些佈局。

    public class WebViewInverter extends FrameLayout { 
        public WebViewInverter(Context context) { 
         super(context); 
         init(); 
        } 
    
        public WebViewInverter(Context context, AttributeSet attrs) { 
         super(context, attrs); 
         init(); 
        } 
    
        public WebViewInverter(Context context, AttributeSet attrs, int defStyleAttr) { 
         super(context, attrs, defStyleAttr); 
         init(); 
        } 
    
        public WebViewInverter(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { 
         super(context, attrs, defStyleAttr, defStyleRes); 
         init(); 
        } 
    
        private boolean nightMode = false; 
    
        private Paint paint = new Paint(); 
        private ColorFilter cf; 
        private Rect inversionRect; 
    
        @Override protected void dispatchDraw(Canvas c){ 
          inversionRect = new Rect(0, 0, getWidth(), getHeight()); 
          Bitmap b = Bitmap.createBitmap(getWidth(), getHeight(), Config.ARGB_8888); 
          Canvas cc = new Canvas(b); 
          super.dispatchDraw(cc); 
          paint.setColorFilter(null); 
          c.drawBitmap(b, 0, 0, paint); 
          paint.setColorFilter(cf); 
          c.drawBitmap(b, inversionRect, inversionRect, paint); 
        } 
    
        private void init(){ 
         float[] mat = new float[] 
         { 
          -1, 0, 0, 0, 255, 
          0, -1, 0, 0, 255, 
          0, 0, -1, 0, 255, 
          0, 0, 0, 1, 0 
         }; 
         cf = new ColorMatrixColorFilter(new ColorMatrix(mat)); 
        } 
    
    } 
    
  2. 把你的WebView變頻器內部的佈局的文件:

    <your.package.name.WebViewInverter 
        android:id="@+id/view_inverter" 
        android:layout_width="wrap_content" 
        android:layout_height="match_parent" 
        android:layout_weight="1" 
        android:layout_marginLeft="@dimen/reader_side_margins" 
        android:layout_marginTop="@dimen/reader_top_margin" 
        android:layout_marginRight="@dimen/reader_side_margins" 
        android:layout_marginBottom="@dimen/reader_bottom_margin"> 
    
        <ru.yandex.reader.widget.ReaderView 
         android:id="@+id/view_reader" 
         android:layout_width="match_parent" 
         android:layout_height="match_parent"/> 
    
    </your.package.name.WebViewInverter> 
    

WebView應該被反轉。