0

编辑:我当前的解决方案。将 json 包装在 div 标签中并将其设置为透明。

我正在从 json 对象远程填充 webview。

{
"message": "<p style=\"color:#EEEEEE;background-color:transparent;font-family:'Arial Narrow','Nimbus Sans L',sans-serif;\"><\/p><p style=\"color:#EEEEEE;background-color:transparent;font-family:'Arial Narrow','Nimbus Sans L',sans-serif;\">The mission of the Canton Police Department is to protect the lives and properties of the citizens of Canton, enforce all city, state, and federal law<\/p>",
"nationalad": ""
}

我可以让 webview 背景透明。但不是半透明的。当我尝试这个时:

webView1.setBackgroundColor(Color.argb(128, 00, 00, 000));

我得到一个黑色背景,右边有一个小的垂直透明条。让它一直透明:

webView1.setBackgroundColor(0x00000000);  

这是我引入 JSON 的方式:

  try{
                JSONObject json = new JSONObject(result);
                JSONArray nameArray = json.names();
                JSONArray valArray = json.toJSONArray(nameArray);
                for (int i = 0; i < valArray.length(); i++)
                {      
                    WebView webView1 = (WebView) findViewById(R.id.webView1);
                   // webView1.setBackgroundColor(0x00000000);

                    //webView1.loadDataWithBaseURL(null, valArray.getString(0), "text/html", "utf-8", null);   
                    webView1.setBackgroundColor(Color.argb(128, 00, 00, 00));
                }     

编辑:XML

    <!-- Included header.xml here -->

    <ViewStub
        android:id="@+id/vsHeader"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inflatedId="@+id/header"
        android:layout="@layout/header" />

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/cpd"
        android:gravity="center|center_horizontal|center_vertical"
        android:orientation="vertical"
        android:paddingBottom="50dp" >

        <WebView
            android:id="@+id/webView1"
            android:layout_width="250dp"
            android:layout_height="300dp"
            />

    </LinearLayout>

</LinearLayout>         

在此处输入图像描述

4

3 回答 3

4

这对我有用:

在您的网页正文上:

background-color:transparent

在您的java活动中:

webView.loadUrl("yourwebpage");
webView.setBackgroundColor(0x00000000); 
webView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);

并且您必须为您的活动设置 hardwareAccelerated false :

android:hardwareAccelerated="false"
于 2012-09-27T08:28:34.257 回答
2

将您的 setBackgroundColor 调用更改为以下内容:

    webView1.setBackgroundColor(0xAA000000);  

这应该给你一个半透明的黑色。前两个条目是 alpha 值。值越低,颜色越透明。

于 2012-04-19T18:47:37.223 回答
0

试试这个:

webView.setAlpha(0);  /*or for semi transparent : webView.setAlpha(0.5f);*/
于 2017-10-01T07:40:24.053 回答