2011-08-24 112 views
12

在我的程序中,當點擊按鈕時,webview按獨立佈局加載。該佈局只有該網頁視圖。我想爲此添加邊框。我將以下單獨的XML添加到該webview的背景中,但是無效。如何爲Android設置邊框webview

<?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> 

如何在Android中爲webview添加邊框..? 謝謝

+1

可以參考此[SO回答](http://stackoverflow.com/questions/7074546/border-texture-for-a-view/7074764# 7074764)? –

回答

22

將WebView封裝在佈局中,將邊框添加到佈局,並在佈局中保留2dp的填充。

+0

感謝它的工作..! – Miuranga

+0

爲什麼需要填充的具體原因是什麼? –

+0

也許有點晚,但填充像對象內部的邊距,所以需要填充以防止webview重疊到佈局背景 –

4

WebView本身不能有Drawable作爲背景 - 請參閱WebView.java中的WebView.onDraw。 它只有純色,默認或從html內容中獲取。 解決方案(如已經建議)將WebView設置爲其他Widget的子項。

4

Abhinav的答案是正確的,我只是像我這樣的絕對初學者添加這些額外的信息誰遇到這個答案,甚至不知道如何「在一個佈局中包圍WebView」或「添加邊界佈局」;希望它可以幫助別人:

  1. /res下創建一個新目錄並將其命名爲drawable(你已經有drawable-hdpidrawable-mdpi等;這些都是不同的分辨率 - 這個新目錄drawable不管將使用解析度)。
  2. drawable下創建一個新的XML文件並將其命名爲border.xml(在Android Studio中,您可以右鍵單擊drawable目錄並單擊新建>可繪製資源文件)。
  3. 將miuranga的XML的全部內容粘貼到border.xml並保存。這被稱爲「可繪製資源」,並將在下一步中被拉入佈局文件。
  4. 在你的佈局文件中,圍繞WebView創建一個新的佈局,就像我在下面用子LinearLayout所做的那樣。請注意,LinearLayout會將屬性android:background設置爲@drawable/border的可繪製資源檢索到。我相信它是通過文件名減去擴展名來檢索border.xml。通過將邊框添加到包圍WebView的佈局中,您可以在視覺上實現Webview周圍的邊框,這很好地工作。

activity_main.xml中內容:

<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> 
+0

謝謝,這對我很好。另外需要補充的是:你可以在根LinearLayout(第一個)中添加一個android:padding =「5dp」,爲屏幕邊緣留出一定的空間。 –