Android: give a webview rounded corners? Android: give a webview rounded corners? android android

Android: give a webview rounded corners?


This is a little quirk of Webview, it has a default background color of white, drawn in front of any drawables. You'll need to use the following code to make it transparent and show your drawable background:

WebView webview = (WebView)findViewById(R.id.webView1);        webview.setBackgroundColor(0);


The only way is wrap WebView element by other view (FrameLayout for example), and apply rounded corners background on external view.Example:

<FrameLayout        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:paddingTop="10dip"        android:paddingBottom="10dip"        android:paddingLeft="1dip"        android:paddingRight="1dip"        android:background="@drawable/white_rounded_area"        >    <WebView            android:id="@+id/web_view"            android:layout_width="300dip"            android:layout_height="400dip"            android:layout_gravity="center"            /></FrameLayout>

Where paddingTop and paddingBottom equals radius from drawable/white_rounded_area,paddingLeft and paddingRight equals stroke width drawable/white_rounded_area.

Minus of this approach is top an bottom rounded panels can have different background color with web page inside WebView, especially when page scrolled.


You can use a CardView to contain the webview, and you just need to add the corner radius that you want with with app:cardCornerRadius :

    <android.support.v7.widget.CardView            android:layout_width="match_parent"            android:layout_height="match_parent"            app:cardCornerRadius="10dp">                    // HERE            <WebView                android:id="@+id/webView"                android:layout_width="match_parent"                android:layout_height="match_parent" />    </android.support.v7.widget.CardView>

And that's all