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" /&开发者_开发技巧gt;
<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
Enclose the WebView in a Layout, add the border to the Layout, and keep a padding of 2dp in the layout.
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:
- Create a new directory under
/res
and name itdrawable
(you'll already havedrawable-hdpi
,drawable-mdpi
, etc; these are for different resolutions--this new directorydrawable
will be used regardless of resolution). - Create a new XML file under
drawable
and name itborder.xml
(in Android Studio, you can right-click on thedrawable
directory and click New>Drawable Resource File). - 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. - 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 retrievingborder.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>
WebView itself can't have Drawable as background - see WebView.onDraw in WebView.java. It has solid color only, default or taken from html content. Solution is (as already suggested) to make WebView as child of other Widget.
精彩评论