2012-01-17 15 views
8

imageView上の静的画像にwebViewを表示したいと思います。"body background-color:transparent"はアンドロイドのwebviewには影響しませんでした4.0.3

私は透明

<html> 
<head> 
</head> 
<body style="background-color:transparent"> 
</body> 
</html> 

が、WebViewのの背景として、私は、背景色を設定し、この

webview.setBackground(0); 

ようにWebViewのに透明色を設定するには、白として表示され続けます。

私は質問を示し、次のページの解決策を試しますが、変更することはありません。

あなたは、任意のアイデアを持っていますか?私を助けてください。これを回避する

+0

この問題は、Androidの4.1.1で修正されています。 – OceanLife

答えて

5

一つの方法は、

Settings -> Developer Options -> Force GPU Rendering 

に「フォースGPUレンダリング」をオフにすることである。しかし、それは問題を解決していません。私はエミュレータでこのコードを試して、それが動作します。ハードウェアアクセラレーションの代わりにソフトウェアを使用してWebビューをレンダリングする

webview.setBackgroundColor(Color.TRANSPARENT); 
    webview.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null); 

問題を解決しますか?

+0

あなたは私に多くの時間の人を救いました –

10

ICS(4.0)を搭載したデバイスの白いWebViewバックグラウンドで同じ問題が発生しました。

NcJleeの回答は、Webビューから白い背景を削除しましたが、APIレベル11が必要です。古いAPIではうまくいきません!

webView.setBackgroundColor(0); 
    webView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null); 

解決策は、.xmlレイアウトリソースのwebviewにandroid:layerType = "software"属性を設定することです。

<WebView 
     android:id="@+id/webviev" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@android:color/transparent" 
     android:layerType="software" /> 
+0

ICS上では、NcJieeのようなシステム設定で「強制GPUレンダリング」を無効にしてから、setBackgroundColorをColor.TRANSPARENTにしなければなりませんでした。ただし、APIレベル10では使用できないsetLayerTypeステートメントを削除する必要がありました。 – Aki

0

のWebViewにsetLayerTypeを呼び出すか、アンドロイドを指定する

webView.setBackgroundColor(Color.TRANSPARENT); 
0

試みtransprentするために、このコードを試してください:XMLでlayerTypeが私のためにコンパイルエラーを引き起こします。これは、minSdkVersionまたはtargetSdkVersionを11+に設定しても起こりました。

だから、私はで推奨されているようsetLayerTypeを呼び出すためにリフレクションを使用して終了:Transparent WebView not working on Android v4.0

関連する問題