2011-08-24 61 views
12

私のプログラムでは、ボタンをクリックするとwebviewが別のレイアウトで読み込まれます。そのレイアウトにはそのWebビューしかありません。私はそれのための境界線を追加したい。私はそのwebviewのための背景に別のXMLを追加しますが、は動作しません。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

多少遅れているかもしれませんが、パディングはオブジェクト内部のマージンのようなものなので、レイアウトの背景にウェブビューが重なるのを防ぐためにパディングが必要です –

4

WebView自体にはDrawableをバックグラウンドとして設定することはできません.WebView.javaのWebView.onDrawを参照してください。 これは単色のみで、デフォルトまたはhtmlコンテンツから取得されます。 WebViewを他のウィジェットの子として作成するソリューションは(既に提案したように)です。

4

Abhinavの答えは正しいです、私はこの答えを見つけた自分のような絶対的な初心者のためにこの追加情報を追加するだけで、 "レイアウトにWebViewを囲む"か "レイアウト";にかかわらず使用されます。この新しいディレクトリdrawable - これらは、異なる解像度のためのもの、それはdrawable(すでになどdrawable-hdpidrawable-mdpiを、持っています

  1. /resの下に新しいディレクトリを作成し、名前:うまくいけば、それは、誰かが助けることができます解決)。
  2. drawableの下に新しいXMLファイルを作成し、border.xmlという名前を付けてください(Androidスタジオでは、drawableディレクトリを右クリックして、[新規作成]> [描画可能リソースファイル]をクリックします)。
  3. miurangaのXMLの内容全体をborder.xmlに貼り付けて保存します。これは "Drawable Resource"と呼ばれ、次のステップでレイアウトファイルに引き込まれます。
  4. レイアウトファイルで、子LinearLayoutを使って以下に示すように、WebViewの周りに新しいレイアウトを作成します。 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

ありがとうございました。追加するもう1つの方法:ルートのLinearLayout(最初のもの)にandroid:padding = "5dp"を追加して、境界線に画面の端からある程度のスペースを与えることができます。 –

関連する問題