Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set border for Android webview

In my programme webview is load in separate layout when button click. that layout only have that web view. I want to add border for that. I add separate XML as follows to background for that webview but is not work.

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF" />
<stroke android:width="10dp" android:color="#000000" />
<padding android:left="2dp" android:top="2dp" android:right="2dp"android:bottom="2dp"/>
</shape>

how can I add a border for webview in Android..? thanks

like image 997
Miuranga Avatar asked Aug 24 '11 09:08

Miuranga


People also ask

How to add border to WebView in Android?

Create a new XML file under drawable and name it border. xml (in Android Studio, you can right-click on the drawable directory and click New>Drawable Resource File). Paste the entire contents of miuranga's XML into border. xml and save it.

How do you add a border on Android?

To add a border to Android TextView we need to create an XML containing shape as a rectangle file under the drawable's folder and set it as background to the TextView. <stroke> tag is used to set the border width and color.


2 Answers

Enclose the WebView in a Layout, add the border to the Layout, and keep a padding of 2dp in the layout.

like image 186
Abhinav Manchanda Avatar answered Oct 12 '22 23:10

Abhinav Manchanda


Abhinav's answer is right on, I'm just adding this additional info for absolute beginners like myself who encounter this answer and don't even know yet how to "enclose the WebView in a Layout" or "add the border to the Layout"; hopefully it can help someone:

  1. Create a new directory under /res and name it drawable (you'll already have drawable-hdpi, drawable-mdpi, etc; these are for different resolutions--this new directory drawable will be used regardless of resolution).
  2. Create a new XML file under drawable and name it border.xml (in Android Studio, you can right-click on the drawable directory and click New>Drawable Resource File).
  3. Paste the entire contents of miuranga's XML into border.xml and save it. This is called a "Drawable Resource" and will be pulled into your layout file in the next step.
  4. In your layout file, create a new Layout around the WebView, as I've done as shown below with the child LinearLayout. Note that the LinearLayout retrieves the drawable resource with the attribute android:background set to @drawable/border. I believe it's retrieving border.xml by its filename minus the extension. By adding the border to the Layout that encloses the WebView, you're visually achieving a border around the Webview, which works nicely.

activity_main.xml contents:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   tools:context="com.example.test.app.MainActivity"
   android:orientation="vertical">
<LinearLayout android:background="@drawable/border"
                  android:layout_width="match_parent"
                  android:layout_height="380px">
    <WebView xmlns:android="http://schemas.android.com/apk/res/android"
                        android:id="@+id/webview"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent" />
     </LinearLayout>
</LinearLayout>
like image 31
James Toomey Avatar answered Oct 13 '22 01:10

James Toomey