Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Eliminar espacio en blanco no deseado en WebView Android

Soy nuevo en android. He comenzado a desarrollar una aplicación utilizando WebView. En realidad estoy cargando una imagen con Webview (me gusta usar los controles de zoom incorporados de la clase). Puedo cargar correctamente la imagen pero puedo ver algunos espacios blancos irritantes. No puedo encontrar la manera de eliminarlo. Mis imágenes tienen un tamaño de 750 * 1000. ¡He atado mis códigos abajo, cualquier ayuda sería apreciada grandemente !!!

Webview.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" > <WebView android:id="@+id/webView" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> 

ImageViewer.java

 package com.android.test; import android.app.Activity; import android.os.Bundle; import android.webkit.WebView; public class ImageViewer extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.webview); String loadUrl = "file:///android_res/drawable/splash_001.jpg"; WebView image = (WebView) findViewById(R.id.webView); image.clearView(); image.clearCache(true); image.getSettings().setBuiltInZoomControls(true); image.getSettings().setSupportZoom(true); image.getSettings().setLoadWithOverviewMode(true); image.getSettings().setUseWideViewPort(true); image.loadUrl(loadUrl); } } 

Por favor, ayúdame !!!

  • La navegación privada está obsoleta en Android WebView desde la API 17. ¿Cuál es la alternativa?
  • Android WebView no cargar contenido mixto
  • Comunicación entre webview y código nativo en una aplicación para móviles
  • Cómo configurar el color de fondo de un WebView a un valor hexadecimal?
  • ¿Familia de fuentes segura para Android WebView?
  • Android Cómo mostrar vínculos en la vista web de esta manera?
  • ¿Justificar texto en una aplicación de Android utilizando un WebView pero presentando una interfaz similar a TextView?
  • Android: la aplicación Web funciona en Chrome, pero no en Webview
  • 11 Solutions collect form web for “Eliminar espacio en blanco no deseado en WebView Android”

    Por defecto webview tiene algunos margen / relleno en el cuerpo. Si desea eliminar ese relleno / margen, a continuación, anule la etiqueta del cuerpo y agregue un margen como:

     <body style="margin: 0; padding: 0"> 

    Si el espacio en blanco que está hablando está en el lado derecho, puede agregar esto a la vista web.

     mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); 

    Eso debería hacer que el espacio en blanco se vaya, siempre y cuando esté en el lado derecho donde estaría la barra de desplazamiento.

    Por Defualt las páginas web HTML tienen un relleno y un margen de 10px; Usted tiene que fijar en su sección principal o archivo de css:

     <style type="text/css"> html, body { width:100%; height: 100%; margin: 0px; padding: 0px; } </style> 

    Eso hizo el truco para mí.

    Tenía el espacio blanco irritante que confina el contenido prestado del HTML en mi WebView (ninguna imagen en ese contenido sin embargo). Al principio pensé que estaba relacionado con las cuestiones CSS como se mencionó anteriormente. Pero al usar una hoja de estilo para cambiar el fondo para HTML, BODY, etc. parecía cada vez más como un relleno alrededor del WebView.

    User3241873 muestra cómo ajustar el relleno en el propio WebView, pero lo que encontré fue cuando la aplicación predeterminada de Android creada por Eclipse generó el archivo de diseño (RelativeLayout "contenedor" en lugar de "LinearLayout"), agregó estos atributos a RelativeLayout:

     android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" 

    Si busca los valores de relleno en res / values ​​/ dimens.xml, verá que están configurados en 16dp. Cuando cambié a 0dp, quitado el espacio en blanco unsightly 🙂

    Si alguien reemplaza el texto predeterminado (Hello World) TextView con un WebView, el relleno para el Parent RelativeLayout se pega como un pariente odioso en la casa.

    Utilice el método setScrollBarStyle de WebView y proporcione el parámetro como View.SCROLLBARS_INSIDE_OVERLAY .

    Este es un ejemplo que puede probar que utiliza una plantilla html, entonces usted puede reemplazar el texto "cuerpo" con lo que quiera … en su caso, el html para una imagen. Puede utilizar el css para diseñar el html según sea necesario. Espero que esto le ayude a entender más cómo usar los activos locales. Publica un comentario si necesitas más ayuda.

    Una línea clave a no perder es <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0,target-densityDpi=device-dpi" />

    Use esto como una plantilla: (assets / template.html)

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0,target-densityDpi=device-dpi" /> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> [CONTENT] </body> </html> 

    Utilice css como este: (assets / style.css)

     @font-face { font-family: Roboto; src: url(file:///android_asset/fonts/Roboto.ttf); } html, div { margin: 0; padding: 0; } body { font-family: Roboto; font-size: 1.0em; color: rgb(61,61,61); text-align: left; position:relative; padding: 40px; background-color: #eeeeee; } 

    Luego en su clase WebView: (su clase que extiende WebView)

     public void setText(CharSequence text, int color){ try { InputStream is = getResources().getAssets().open("article_view.html"); int size = is.available(); byte[] buffer = new byte[size]; is.read(buffer); is.close(); loadDataWithBaseURL("file:///android_asset/", new String(buffer).replace("[CONTENT]", text.toString()), "text/html", "UTF-8", null); } catch (IOException e) { e.printStackTrace(); } } 

    Tuve esto [esta es mi activity.xml ]

     <RelativeLayout 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" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> 

    Acabo de eliminar el relleno en el relativoLayout

     <RelativeLayout 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=".MainActivity"> 

    He probado todas las soluciones anteriores, pero no me fue muy bien. Este trabajó para mí.

    Realmente no sé a qué espacio se refiere (tal vez la imagen tiene relleno o menos), pero por lo general si tiene algún problema de diseño en un WebView que intentaría solucionarlos proporcionando una adecuada (en línea) css-stylesheet.

    Establecer el relleno en su webview.xml a 0dp

     <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" > <WebView android:id="@+id/webView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingBottom="0dp" android:paddingLeft="0dp" android:paddingRight="0dp" android:paddingTop="0dp" /> 

    Ya lo tengo .

    Aquí mi código de la lógica, cuando la aplicación abre el Web site que usted debe conseguir el tamaño de su Webview después fijarlo en altura

    Aquí mi código

      ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams) webpage.getLayoutParams(); p.height = webpage.getHeight(); Log.e(" webpage.getHeight()", String.valueOf(webpage.getHeight())); webpage.setLayoutParams(p); 

    Espero que tome mi código y mi respuesta a 🙂 funciona en cualquier dispositivo incluso pestañas también 🙂

    Mi caso, la parte superior de mi webview tiene relleno grande. Por lo tanto, defina scrollbarSize = "0dp". En AS 2.2.3

     <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" > <WebView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/webView" android:scrollbarSize="0dp" /> 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.