jpt*_*ung 150 transparency android background transparent webview
我正在努力创建一个透明背景的WebView.
webView.setBackgroundColor(0x00FFFFFF);
webView.setBackgroundDrawable(myDrawable);
Run Code Online (Sandbox Code Playgroud)
然后我加载一个html页面
<body style="background-color:transparent;" ...
Run Code Online (Sandbox Code Playgroud)
WebView的背景颜色是透明的,但是一旦页面加载,它就会被html页面中的黑色背景覆盖.这只发生在Android 2.2上,它适用于android 2.1.
那么在html页面代码中添加一些内容以使其真正透明吗?
sco*_*yab 280
这对我有用,
mWebView.setBackgroundColor(Color.TRANSPARENT);
Run Code Online (Sandbox Code Playgroud)
Cee*_*etn 124
在前面提到的问题的底部有一个解决方案.它是两种解决方案的组合.
webView.setBackgroundColor(Color.TRANSPARENT);
webView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);
Run Code Online (Sandbox Code Playgroud)
在 加载url 后将此代码添加到WebViewer时,它可以正常工作(API 11+).
当硬件加速打开时,它甚至可以工作
osa*_*gan 36
我在2.2和2.3中遇到了同样的问题.我通过在html中给出alpa值而不是在android中解决了这个问题.我尝试了很多东西,我发现的setBackgroundColor();
颜色与alpha值无关.webView.setBackgroundColor(Color.argb(128, 0, 0, 0));
不管用.
所以这是我的解决方案,为我工作.
String webData = StringHelper.addSlashes("<!DOCTYPE html><head> <meta http-equiv=\"Content-Type\" " +
"content=\"text/html; charset=utf-8\"> </head><body><div style=\"background-color: rgba(10,10,10,0.5); " +
"padding: 20px; height: 260px; border-radius: 8px;\"> $$$ Content Goes Here ! $$$ </div> </body></html>");
Run Code Online (Sandbox Code Playgroud)
在Java中,
webView = (WebView) findViewById(R.id.webview);
webView.setBackgroundColor(0);
webView.loadData(webData, "text/html", "UTF-8");
Run Code Online (Sandbox Code Playgroud)
这是下面的输出截图.
jpt*_*ung 31
实际上这是一个错误,到目前为止没有人找到解决方法.已经创建了一个问题.这个小虫仍然在蜂巢中.
如果您认为这很重要,请为其加注星标:http://code.google.com/p/android/issues/detail?id = 14749
Ali*_*Ali 22
这是你如何做到的:
首先让你的项目基于11,但在AndroidManifest中将minSdkVersion设置为8
android:hardwareAccelerated ="false"是不必要的,它与8不兼容
wv.setBackgroundColor(0x00000000);
if (Build.VERSION.SDK_INT >= 11) wv.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);
this.wv.setWebViewClient(new WebViewClient()
{
@Override
public void onPageFinished(WebView view, String url)
{
wv.setBackgroundColor(0x00000000);
if (Build.VERSION.SDK_INT >= 11) wv.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);
}
});
Run Code Online (Sandbox Code Playgroud)
为了安全起见,请按照您的风格:
BODY, HTML {background: transparent}
Run Code Online (Sandbox Code Playgroud)
在2.2和4为我工作
lil*_*top 12
html 必须具有设置为的body
标记.background-color
transparent
<body style="display: flex; background-color:transparent">some content</body>
Run Code Online (Sandbox Code Playgroud)
WebView wv = (WebView) findViewById(R.id.webView);
wv.setBackgroundColor(0);
wv.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
wv.loadUrl("file:///android_asset/myview.html");
Run Code Online (Sandbox Code Playgroud)
下面的代码工作正常Android 3.0+但是当你在Android 3.0下面尝试这个代码然后你的应用程序强行关闭.
webView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);
Run Code Online (Sandbox Code Playgroud)
你在不太熟悉的API 11上尝试下面的代码.
webview.setBackgroundColor(Color.parseColor("#919191"));
Run Code Online (Sandbox Code Playgroud)
要么
你也可以尝试下面适用于所有API的代码.
webview.setBackgroundColor(Color.parseColor("#919191"));
if (Build.VERSION.SDK_INT >= 11) {
webview.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);
}
Run Code Online (Sandbox Code Playgroud)
以上代码使用全部为我.
以下代码为我工作,虽然我有多个webview并在它们之间滚动有点迟缓.
v.setBackgroundColor(Color.TRANSPARENT);
Paint p = new Paint();
v.setLayerType(LAYER_TYPE_SOFTWARE, p);
Run Code Online (Sandbox Code Playgroud)
用这个
WebView myWebView = (WebView) findViewById(R.id.my_web);
myWebView.setBackgroundColor(0);
Run Code Online (Sandbox Code Playgroud)
webView.setBackgroundColor(Color.TRANSPARENT)
在loadUrl()
/ 之前或之后指定都没关系loadData()
.android:hardwareAccelerated="false"
在清单中明确声明.在IceCream三明治上测试
只需使用这些线......
webView.loadDataWithBaseURL(null,"Hello", "text/html", "utf-8", null);
webView.setBackgroundColor(0x00000000);
Run Code Online (Sandbox Code Playgroud)
并记住一点,在 webview 中加载数据后始终设置背景颜色。
归档时间: |
|
查看次数: |
116857 次 |
最近记录: |