2011-08-24 21 views
12

En mi programa, la vista web se carga en un diseño por separado cuando se presiona el botón. ese diseño solo tiene esa vista web. Quiero agregar borde para eso. Agrego XML separado de la siguiente manera a fondo para esa vista web, pero es no funciona.Cómo establecer el borde para la vista web de Android

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

¿Cómo puedo agregar un borde de vistas web en Android ..? gracias

+1

podría referirse a esta [SO respuesta] (http://stackoverflow.com/questions/7074546/border-texture-for-a-view/7074764# 7074764)? –

Respuesta

22

Encierre WebView en un diseño, agregue el borde al diseño y mantenga un relleno de 2dp en el diseño.

+0

gracias a su trabajo .. !! – Miuranga

+0

¿Alguna razón específica por la cual se necesita relleno? –

+0

Tal vez un poco tarde, pero el relleno es como un margen dentro de los objetos, por lo que el relleno es necesario para evitar la superposición de la vista web en el fondo de diseño –

4

WebView en sí no puede tener Drawable como fondo - consulte WebView.onDraw en WebView.java. Tiene solo color sólido, predeterminado o tomado del contenido html. La solución es (como ya se sugirió) para hacer WebView como hijo de otro widget.

4

La respuesta de Abhinav es correcta, solo estoy agregando esta información adicional para principiantes como yo que encuentran esta respuesta y ni siquiera saben cómo "encerrar WebView en un diseño" o "agregar el borde a el diseño "; es de esperar que puede ayudar a alguien:

  1. Crear un nuevo directorio bajo /res y el nombre drawable (ya tendrá drawable-hdpi, drawable-mdpi, etc, que son para diferentes resoluciones - este nuevo directorio drawable se utilizará independientemente de resolución).
  2. Cree un nuevo archivo XML en drawable y asígnele el border.xml (en Android Studio, puede hacer clic con el botón derecho en el directorio drawable y hacer clic en Nuevo> Archivo de recursos Drawable).
  3. Pegue todo el contenido del XML de miuranga en border.xml y guárdelo. Esto se denomina "Recurso extraíble" y se extraerá en el archivo de diseño en el siguiente paso.
  4. En su archivo de diseño, cree un nuevo Diseño alrededor de WebView, como lo he hecho como se muestra a continuación con el niño LinearLayout. Tenga en cuenta que LinearLayout recupera el recurso dibujable con el atributo android:background establecido en @drawable/border. Creo que está recuperando border.xml por su nombre de archivo menos la extensión. Al agregar el borde al Diseño que rodea el WebView, visualmente se logra un borde alrededor del Webview, que funciona muy bien.

contenido 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

Gracias, funcionó muy bien para mí. Otra cosa para agregar: puedes agregar un android: padding = "5dp" a la raíz LinearLayout (la primera) para darle al borde un espacio desde los bordes de la pantalla. –

Cuestiones relacionadas