Удаление нежелательного белого пространства в WebView Android

Я новичок в Android. Я начал разрабатывать приложение с помощью WebView. На самом деле я загружаю изображение с помощью Webview (мне нравится использовать встроенные средства управления масштабированием класса). Я могу успешно загрузить изображение, но я вижу некоторые раздражающие белые пробелы. Я не могу найти способ его удалить. Мои изображения размером 750 * 1000. Я приложил свои коды ниже, Любая помощь будет принята с благодарностью !!!

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); } } 

Пожалуйста помогите !!!

По умолчанию webview имеет несколько полей / отступов в теле. Если вы хотите удалить это дополнение / маржу, переопределите тег тела и добавьте маржу, например:

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

Если пустое пространство, о котором вы говорите, находится с правой стороны, вы можете добавить это в веб-представление.

 mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); 

Это должно заставить белое пространство уйти, если оно находится на правой стороне, где будет полоса прокрутки.

По Defualt HTML веб-страницы имеют отступы и поля 10px; Вы должны установить в своей голове раздел или файл css:

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

Это помогло мне.

У меня было раздражающее белое пространство, граничащее с визуализированным содержимым HTML в моем WebView (в этом нет изображений в этом контенте). Сначала я подумал, что это связано с проблемами CSS, как упоминалось выше. Но, используя таблицу стилей, чтобы изменить фон для HTML, BODY и т. Д., Он все больше напоминал прокладки вокруг WebView.

User3241873 показывает выше, как настроить дополнение к самому WebView, но я обнаружил, что когда приложение Android по умолчанию, созданное Eclipse, сгенерировало файл макета (RelativeLayout «контейнер», а не «LinearLayout»), он добавил эти атрибуты в 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" 

Если вы посмотрите на эти значения заполнения в res / values ​​/ dimens.xml, вы увидите, что они установлены на 16dp. Когда я перешел на 0dp, он удалил неприглядное белое пространство 🙂

Если кто-то заменяет TextView по умолчанию (Hello World) на WebView, отступы для родительского RelativeLayout падают вокруг, как неприятный родственник в доме.

Используйте метод setScrollBarStyle WebView и setScrollBarStyle параметр как View.SCROLLBARS_INSIDE_OVERLAY .

Это пример, который вы можете проверить, используя шаблон html, затем вы можете заменить текст «body» тем, что хотите … в вашем случае, html для изображения. Вы можете использовать css для создания html по мере необходимости. Надеюсь, это поможет вам понять, как использовать местные активы. Если вам нужна дополнительная помощь, отправьте комментарий.

Одна ключевая строка для пропусков – это <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0,target-densityDpi=device-dpi" />

Используйте это как шаблон: (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> 

Используйте css следующим образом: (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; } 

Затем в вашем классе WebView: (ваш класс, расширяющий 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(); } } 

У меня было это [это мой 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"> 

Я просто удалил прокладку в relativeLayout

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

Я попробовал все вышеперечисленные решения, но для меня это не очень понравилось. Этот работал для меня.

Я действительно не знаю, какие пробелы вы имеете в виду (возможно, у изображения есть дополнение или около того), но обычно, если у вас есть какие-либо проблемы с макетом в WebView, вы попытаетесь исправить их, предоставив правильную (встроенную) CSS-таблицу стилей.

Установите дополнение в вашем webview.xml на 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" /> 

Я уже получил его .

Здесь мой логический код. Когда приложение открывает веб-сайт, вы должны получить размер своего веб-представления, а затем установить его на высоте

Здесь мой код

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

Надеюсь, вы возьмете мой код и мой ответ 🙂 работает на любых устройствах даже на вкладках тоже 🙂

Мой случай, верхняя часть моего веб-представления имеет большое дополнение. Итак, установите scrollbarSize = "0dp". В 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" /> 
Intereting Posts
Социальный обмен на мобильных устройствах Изменение центральной позиции эффекта эффекта пульсации для андроида. Почему Android 4.0 / Ice Cream Sandwich выделяет столько кучи памяти? Запустить браузер по умолчанию с настройками и параметрами почты Ошибка «Недостаточно памяти» при создании Android на виртуальной машине Заполнять список ListAdapter или SimpleCursorAdapter Как удалить подписку из списка продуктов в консоли разработчика и каково ее влияние на старых подписчиков? Внутренняя система позиционирования на основе гироскопа и акселерометра Android: текстовое изображение с вертикальным текстом прокрутки Android MediaPlayer зависает после поиска новой позиции видео Как я могу установить тень представления только по сторонам для просмотра с увеличением Как получить только избранные / избранные контакты с помощью ContactsContract Android ListView: как добавить строку с кнопкой Упаковка портативного и переносимого Android-приложения вместе с CLI Пожалуйста, помогите мне в решении следующего исключения?