61

我正在向我的布局中添加一个 WebView 来显示对齐的文本。我想将 WebView 的背景设置为透明以显示为 textView。这是我所做的:

WebView synopsis;
synopsis=(WebView)findViewById(R.id.synopsis);
synopsis.setBackgroundColor(0x00000000);

它在模拟器上工作,但是当我在我的设备上运行应用程序时它不起作用:我得到的是白色背景。

 String textTitleStyling = "<head><style>* {margin:0;padding:0;font-size:20; text-align:justify; color:#FFFFFF;}</style></head>";
 String titleWithStyle = textTitleStyling + "<body><h1>" + movie.synopsis + "</h1></body>";
 synopsis.loadData(textTitleStyling + movie.synopsis, "text/html", "utf-8");
 synopsis = (WebView) findViewById(R.id.synopsis);
 synopsis.getSettings();
 synopsis.setBackgroundColor(0);
4

9 回答 9

108

尝试使用 synopsis.getSettings();

WebView synopsis;
synopsis=(WebView)findViewById(R.id.synopsis);
synopsis.setBackgroundColor(Color.TRANSPARENT);
于 2012-06-06T18:27:31.550 回答
30

试试下面的代码希望对你有用: -

webview.setBackgroundColor(Color.parseColor("#919191"));

格雷码:#919191

于 2012-12-26T05:35:10.260 回答
20

您必须将其放入 XML 代码中:

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

对于您的网络视图,例如:

<WebView
    android:id="@+id/MyWebView"
    android:layout_width="fill_parent"
    android:layout_height="62dp"
    android:background="@android:color/transparent"
    android:scrollbars="none" />

在此之后,您必须转到 Java 代码并在 loadUrl 之前编写此代码:

yourWebView.setBackgroundColor(Color.TRANSPARENT);
于 2014-02-19T15:40:34.207 回答
2

我所做的是

 synopsis.setBackgroundColor(0);

希望能帮助到你!

于 2012-06-06T19:50:51.683 回答
2

你在你的webview中加载了css吗?

就像是:

synopsis.loadData(textTileStyling, "text/html", "UTF-8");

或者

synopsis.loadDataWithBaseURL("", textTileStyling, "text/html", "UTF-8", "");
于 2012-06-10T08:42:18.097 回答
2

如果我打开了暗模式,这是我可以让它工作而不首先加载初始白色背景的唯一方法:

webView.setBackgroundColor(Color.TRANSPARENT);
webView.setVisibility(View.VISIBLE);


<WebView
    android:id="@+id/web_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:visibility="invisible"
   />
于 2021-01-21T16:40:48.983 回答
1

你可以在这里找到一些提示:http://code.google.com/p/android/issues/detail?id=14749和这里: Android WebView style background-color:transparent ignored on android 2.2

于 2012-10-24T10:20:57.483 回答
1

您的 html 代码将所有内容设置为白色

代替:

    String textTitleStyling = "<head><style>* {margin:0;padding:0;font-size:20;" +
    “文本对齐:对齐;颜色:#FFFFFF;}</style></head>”;

    字符串 titleWithStyle = textTitleStyling + "<body><h1>" + movie.synopsis +
    "</h1></body>";

    synopsis.loadData(textTitleStyling + movie.synopsis, "text/html", "utf-8");
    概要 = (WebView) findViewById(R.id.synopsis);
    概要.getSettings();
    概要.setBackgroundColor(0);

和:

这会从标题样式中排除颜色,并将样式的其余部分仅应用于正文元素

    String textTitleStyling = "<head><style>body{margin:0;padding:0;font-size:20;" +
    “文本对齐:对齐;}</style></head>”;

    字符串 titleWithStyle = textTitleStyling + "<body><h1>" + movie.synopsis +
    "</h1></body>";

    概要.loadData(titleWithStyle, "text/html", "utf-8");
    概要 = (WebView) findViewById(R.id.synopsis);
    概要.getSettings();
    概要.setBackgroundColor(0);

编辑:固定的html

于 2013-07-05T14:22:33.210 回答
0

你也可以这样做——

webview.setBackgroundColor(getContext().getResources().getColor(android.R.color.transparent));

android.R.color.transparent是属于android fragmework的透明颜色。

于 2020-07-14T16:40:40.083 回答